¿Cómo puedo consultar una tabla basada en la relación HABTM mientras proporciono condiciones adicionales en CakePHP?

StackOverflow https://stackoverflow.com/questions/602227

  •  03-07-2019
  •  | 
  •  

Pregunta

¿Cómo puedo hacer esto en CakePHP: Estoy usando dos tablas ( regiones y safaris ) que tienen una relación de muchos a muchos. Las tablas están unidas por otra tabla llamada regions_safaris (con los campos region_id & amp; safari_id ). Quiero obtener todos los safaris que cumplan con un criterio determinado, como duraciones de 5 días y en una región determinada. Esto debería implementarse en CakePHP

¿Fue útil?

Solución

juma,

Por favor, resiste publicar varias veces tan rápido.

Para obtener más referencias, consulte la relación Cakebook Has-And-Belongs-To-Many. Es exactamente lo que estás describiendo. Consulte http://book.cakephp.org/view/83/hasAndBelongsToMany-HABTM

En resumen, asumiendo que tiene la configuración de los modelos de Cake correctamente (con la relación HABTM establecida entre las regiones, safaris y regions_safaris; verifique el índice 'joinTable' en la matriz var $ hasAndBelongsToMany, en los modelos), haría esto :

   class SafariModel extends AppModel
   { 
     var $name = 'Safari';
     var $hasAndBelongsToMany = array( 'Tag'=>array( ..., 'joinTable'=>'regions_safaris', ... );

     function findSafaris( $duration = 5, $region = null )
     {
       return $this->find('all', array('conditions'=>array('Region.region_name'=>$region, 'Safari.duration'=>$duration) );
     }
     ... // rest of class
   }
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top