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