我有两个模型:Users
和Lessons
User
有一个Teacher
User
拥有并属于许多Students
两者都是Teachers
_Students
Users
在我的Users
模型中,我有这个关联:
public $hasMany = array(
'Lesson' => array(
'className' => 'Lesson',
'foreignKey' => 'user_id',
'dependent' => false,
)
);
在我的Lessons
模型中,我目前有这个关联:
public $belongsTo = array(
'Teacher' => array(
'className' => 'User',
'foreignKey' => 'teacher_id',
'conditions' => array('Teacher.group_id' => '2'),
'fields' => '',
'order' => ''
)
);
我的问题是:
为什么
$teachers = $this->Lesson->Teacher->find('list');
返回所有users
而不只是返回teachers
?为什么belongsTo
模型部分中设置的条件不过滤结果以仅显示Users
2group_id
即Teachers
?如果这不是它应该工作的方式,那么在这里设置条件有什么意义呢?到目前为止,我每次都必须将它包含在 find 中,这似乎有点多余:
$teachers = $this->Lesson->Teacher->find('list', array('conditions'=>array('Teacher.group_id'=>'2')))
我如何编写有很多学生的
Students
关联Lessons
?以及如何为它设置数据库?