CakePHP HABTM с FindAll с использованием Containable - PullRequest
0 голосов
/ 06 декабря 2011

Мое содержимое работает, но мне нужно добавить условие из отношения HABTM.

Компания имеет отношение HABTM к государству (таблица companies_states).

В приведенном ниже методе мне нужно проверить, если state_id = 1 (см. Мое прокомментированное условие). Я не уверен, как включить companies_states в мой Containable, чтобы я мог оценить результаты.

function company_list() {
   return $this->PlanDetail->find('all', array(
      'fields'  => array('id', 'company_id'), 
      'contain' => array('Company' => array(
         'fields' => array('id', 'name',     'short_name')), 
         'State' => array(
            'fields' => array('id')
         )
      ),
      //'conditions' => array('state_id' => 1),
      'group'   => 'Company.name',
      'order'   => array('Company.name ASC')
   ));
} 

1 Ответ

0 голосов
/ 06 декабря 2011

Не думаю, что вам нужно делать что-то особенное ... Просто добавьте Company перед state_id

function company_list() {
   return $this->PlanDetail->find('all', array(
      'fields'  => array('id', 'company_id'), 
      'contain' => array('Company' => array(
         'fields' => array('id', 'name',     'short_name')), 
         'State' => array(
            'fields' => array('id')
         )
      ),
      'conditions' => array('Company.state_id' => 1),
      'group'   => 'Company.name',
      'order'   => array('Company.name ASC')
   ));
} 
...