Как мне запросить таблицу, основанную на связи HABTM, предоставляя дополнительные условия в CakePHP?

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

  •  03-07-2019
  •  | 
  •  

Вопрос

Как я могу сделать это в CakePHP:Я использую две таблицы (regions и safaris) наличие отношений "многие ко многим".Таблицы соединяются другой таблицей, называемой regions_safaris (с полями region_id & safari_id).Я хочу собрать все safaris соответствие заданным критериям, таким как продолжительность в 5 дней и в данном регионе.Это должно быть реализовано в CakePHP

Это было полезно?

Решение

juma,

Пожалуйста, воздержитесь от публикации несколько раз так быстро.

Для получения дополнительной информации, пожалуйста, ознакомьтесь с отношением Cakebook "Имеет-И-принадлежит-многим".Это именно то, что вы описываете.Видишь http://book.cakephp.org/view/83/hasAndBelongsToMany-HABTM

Короче говоря, предполагая, что у вас правильно настроены модели Cake (с установленным отношением HABTM между regions, safaris и regions_safaris;проверьте индекс 'JoinTable' в массиве var $hasAndBelongsToMany в моделях), вы бы сделали это:

   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
   }
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top