Как я могу запросить таблицу на основе отношения HABTM, предоставляя дополнительные условия в CakePHP? - PullRequest
1 голос
/ 02 марта 2009

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

1 Ответ

2 голосов
/ 02 марта 2009

Джума,

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

Для получения дополнительной информации, пожалуйста, смотрите отношения Cakebook Has-And-Belongs-To-Many. Это именно то, что вы описываете. Смотри http://book.cakephp.org/view/83/hasAndBelongsToMany-HABTM

Короче говоря, если вы правильно настроили модели Cake (с установленным отношением HABTM между регионами, сафари и регионами; проверьте индекс '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
   }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...