У меня две модели: 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
сgroup_id
из 2, т. е.Teachers
? И если это не так, как это должно работать, то какой смысл ставить здесь условия?На данный момент я должен включать его в поиск каждый раз, что кажется излишним:
$teachers = $this->Lesson->Teacher->find('list', array('conditions'=>array('Teacher.group_id'=>'2')))
Как написать ассоциации для
Students
, чтобы уLessons
было много учеников? И как настроить для него базу данных?