Como faço para consultar uma tabela com base com relação HABTM, proporcionando condições adicionais em CakePHP?

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

  •  03-07-2019
  •  | 
  •  

Pergunta

Como posso fazer isso no CakePHP: Estou usando duas tabelas (regions e safaris) tendo um relacionamento muitos-para-muitos. As tabelas são unidas por outra tabela chamada regions_safaris (com campos region_id & safari_id). Quero buscar todos safaris atender um determinado critério como durações de 5 dias e em uma determinada região. Isto deve ser implementado no CakePHP

Foi útil?

Solução

juma,

Por favor resistir a postar várias vezes tão rapidamente.

Para mais referência, consulte o Cakebook Tem-E-pertence-para-muitos. É exatamente o que você está descrevendo. Consulte http://book.cakephp.org/view/83/hasAndBelongsToMany-HABTM

Em suma, supondo que você tem a configuração Bolo de modelos corretamente (com o relacionamento HABTM estabelecida entre regiões, safaris, e regions_safaris, verificar o índice 'joinTable' no array hasAndBelongsToMany var $, nos modelos), você faria isso :

   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 em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top