CakePHP可包含的多个HABTM关联查找

时间:2012-11-12 07:54:28

标签: cakephp find associations has-and-belongs-to-many contain

我在两个模型之间有HABTM关联,但只能找到返回一个级别。我可以与其他协会返回几个级别,但我认为我必须遗漏一些HABTM。

控制器/ SchedulesController.php

$this->Schedule->find('first', array(
  'contain' => array(
    'Association' => array(
      'Schedule'
    )
  )
));

模型/ Schedule.php

public $actsAs = array('Containable');
public $hasAndBelongToMany = array(
  'Association'
);

模型/ Association.php

public $actsAs = array('Containable');
public $hasAndBelongsToMany = array(
  'Schedule'
);

此刻我才得到......

array(
  'Schedule' => array(
     ...
  ),
  'Association' => array(
    (int) 0 => array(
      ...
    'AssociationsSchedule' => array(
      ...
    )
  )
)

...但我想安排 - >关联 - >时间表

1 个答案:

答案 0 :(得分:-1)

虽然contains()应该有效,但另一个选择是在查找之前使用recursive选项:

$this->Schedule->recursive = 3; //2 might work, but I think you need 3 levels
$this->Schedule->find('first');

还值得一提的是,here提出了类似的问题。