У меня есть SubjectGroup, которая имеет много тем.
class SubjectGroup extends AppModel {
public $hasMany = array(
'Subject' => array('order' => 'Subject.name')
);
}
class Subject extends AppModel {
public $belongsTo = array('SubjectGroup');
}
Я хочу получить все SubjectGroups и рекурсивно получить их Предметы, но только Предметы, имеющие статус 2. Я не могу понять, как это сделать.
$subjectGroups = $this->SubjectGroup->find('all', array(
'conditions' => array('Subject.status !=' => 2),
'order' => 'SubjectGroup.name'
));
Предупреждение (512): ошибка SQL: 1054: неизвестный столбец «Subject.status» в «предложении where»
Примечание: я прочитал, что могу добавить массив условий в определение отношения модели, но я не хочу, чтобы отношение всегда использовало условие. Иногда я захочу просто получить SubjectGroups и Subjects со статусом 2, а иногда SubjectGroups со всеми Subjects, независимо от их статуса.
ПРОГРЕСС
С некоторой помощью Росса я сейчас пытаюсь использовать поведение Containable. У меня есть это до сих пор:
$this->SubjectGroup->find('all', array(
'contain' => 'Subject.status != 2',
'order' => 'SubjectGroup.name'
));
Нет ошибок, но он возвращает все темы, даже те, которые имеют статус = 2.