我阅读了 Containable部分,但没有找到一个明确的示例来用可包含查询替换对 habtm 关系的内部联接查询。例子 :
模型
Student hasAndBelongsToMany Teacher
Teacher hasAndBelongsToMany Student
询问
$joins = array(
array(
'table' => 'teachers_students',
'type' => 'INNER',
'conditions' => array(
'teachers_students.teacher_id' => $teacherId,
'teachers_students.student_id = Student.id'
)
)
);
$data = $this->find('all', array('joins' => $joins));
注释
- 在
hasAndBelongsToMany
每个模型中设置属性。 - 对模型的伪变量
$this
引用:class Student
$teacherId
是一个参数(有一个过滤器可以显示属于某个特定教师的学生)。
我在寻找什么
为了能够在没有 的情况下编写相同的查询joins
,使用contain
. 就像是 :
$contain = array(
'Teacher' => array(
'conditions' => array('???' => '???')
)
);
$data = $this->find('all', array('contain' => $contain));