1
我对through
关系verymuch困惑。这里是我的表如何使用活动记录指定此关系?
批次(ID,姓名)
主题(ID,BATCH_ID,名)
老师(ID,姓名)
subject_teacher(subject_id,teacher_id)
关系是
批次HAS_MANY科目
个科目通过subject_teacher belongs_to的一批
主题MANY_MANY教师
教师MANY_MANY科目通过subject_teacher
不,我怎么可以指定让一批
- 教师分配
- 批次的关系一位老师
我试着用through选项,但它似乎没有与MANY_MANY关系的工作。除了遍历每个主题之外,还有其他更好的方法吗?
编辑: 我知道我可以通过函数在教师模型
public function getBatches()
{
$batches=array();
foreach($this->subjects as $subject)
$batches[]=$subject->batch;
return $batches;
}
得到老师的科目,现在我可以通过参考$teacher->batches
得到老师的批次。但我需要一个更清洁的关系,如解决方案,以便在代码中的某些地方我可以发出如下声明:Teacher::model()->with('batches')->findAll()
这种解决方案的问题是,我们不能使用任何与(“批次”)的预先加载,我认为这将导致执行许多查询 – dInGd0nG 2012-07-21 17:13:17
是的,你可以看到更新的代码。 – bingjie2680 2012-07-21 17:21:02
它不起作用。由于教师模型中没有“主题”。这是'科目'。因此,我们不能在使用“subject.batch”() – dInGd0nG 2012-07-21 17:59:46