CakePHP HABTM w / FindAll使用Containable

时间:2011-12-06 02:55:02

标签: cakephp conditional has-and-belongs-to-many

我的包含是可行的,但我需要从HABTM关系中添加一个条件。

公司与State(companies_states table)有HABTM关系。

在下面的方法中,我需要检查state_id = 1(参见我的注释条件)。我不确定如何在我的Containable中包含companies_states,以便我可以对结果进行限定。

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 :(得分:0)

我认为你不应该做任何特别的事情......只需在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')
   ));
}