【发布时间】:2011-10-05 15:52:03
【问题描述】:
我有 SubjectGroup,它有很多主题。
class SubjectGroup extends AppModel {
public $hasMany = array(
'Subject' => array('order' => 'Subject.name')
);
}
class Subject extends AppModel {
public $belongsTo = array('SubjectGroup');
}
我想获取所有 SubjectGroups,并递归检索它们的 Subjects,但只检索状态为 2 的 Subjects。我不知道该怎么做。
$subjectGroups = $this->SubjectGroup->find('all', array(
'conditions' => array('Subject.status !=' => 2),
'order' => 'SubjectGroup.name'
));
警告 (512):SQL 错误:1054:“where 子句”中的未知列“Subject.status”
注意:我读过我可以在模型关系定义中添加一个条件数组,但我不希望关系总是使用条件。有时我只想检索状态为 2 的 SubjectGroups 和 Subjects,有时我想检索所有 Subjects 的 SubjectGroups,不管它们的状态如何。
进展
在 Ross 的帮助下,我现在正在尝试使用 Containable 行为。到目前为止我有这个:
$this->SubjectGroup->find('all', array(
'contain' => 'Subject.status != 2',
'order' => 'SubjectGroup.name'
));
没有错误,但它返回所有主题,即使是状态 = 2 的主题。
【问题讨论】:
-
这里有同样的问题。你的问题解决了吗?
标签: cakephp