1

我试图在任何地方找到这个,但我不能。这是我的问题:

可以说我有这样关联的模型:

  1. 学生(拥有许多会员资格)
  2. 会员资格(属于学生和教师课程)
  3. TeacherCourse(属于Teacher和Course)
  4. 教师(有许多教师课程)
  5. 课程(有许多教师课程)

当我使用membershipsController将所有成员资格发送到视图时,我只得到例如$membership['Membership']['id']$membership['TeacherCourse']['id']但不是$membership['TeacherCourse']['Teacher']['id']......

这意味着我会获得有关会员资格和教师课程的信息,因为它们是直接关联的。我的问题是如何直接获取有关教师或课程的信息?

4

2 回答 2

1

您可以增加模型的递归级别以获得更深的关联(设置$this->Membership->recursive为 2 或 3),但通常最好使用该Containable行为,以便您可以选择要检索的关联。例如,这将返回关联的 TeacherCourse 和 Teacher 模型的成员资格:

$membership = $this->Membership->find('all', array(
    'contain'=>array(
        'TeacherCourse'=>array(
            'Teacher'=>array()
        ),
    ));

另请参阅http://book.cakephp.org/2.0/en/core-libraries/behaviors/containable.html中包含的行为的完整文档

于 2012-09-20T15:29:26.783 回答
0

当我意识到您需要先将以下内容添加到模型中时,我在这个问题上挠了几分钟:

public $actsAs = array('Containable');

如果没有上述内容,仅在控制器中添加包含数组可能不会返回您在视图中查找的变量。

于 2017-03-18T13:44:32.053 回答