Come posso interrogare una tabella basata sulla relazione HABTM fornendo al contempo condizioni aggiuntive in CakePHP?

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

  •  03-07-2019
  •  | 
  •  

Domanda

Come posso farlo in CakePHP: Sto usando due tabelle ( regioni e safari ) che hanno una relazione molti-a-molti. Le tabelle sono unite da un'altra tabella chiamata region_safaris (con i campi region_id & amp; safari_id ). Voglio recuperare tutti i safari che soddisfano determinati criteri come durate di 5 giorni e in una determinata regione. Questo dovrebbe essere implementato in CakePHP

È stato utile?

Soluzione

Juma,

Ti preghiamo di resistere a pubblicare più volte così rapidamente.

Per ulteriori riferimenti, consultare la relazione Has-And-Belongs-To-Many di Cakebook. È esattamente quello che stai descrivendo. Vedi http://book.cakephp.org/view/83/hasAndBelongsToMany-HABTM

In breve, supponendo che tu abbia configurato correttamente i modelli Cake (con la relazione HABTM stabilita tra regioni, safari e regioni_safaris; controlla l'indice 'joinTable' sull'array var $ hasAndBelongsToMany, nei modelli), lo faresti :

   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
   }
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top