让我们想象一下,您的Mcourse
表被调用courses
并且该表的模型被调用Courses
,您的Lcourse
表被调用courses_colleges
并且您的大学表是colleges
并且该表的模型是Colleges
现在,您应该有Courses
具有关系的模型:
public function relations() {
return array(
'colleges' => array(self::MANY_MANY, 'Colleges', 'courses_colleges(course_id, college_id)')
);
}
你的Colleges
模型应该有类似的关系:
public function relations() {
return array(
'courses' => array(self::MANY_MANY, 'Courses', 'courses_colleges(college_id, course_id)')
);
}
现在,如果您想打印一个包含某所大学所有课程的下拉列表。在您的控制器操作方法中获取该学院的模型,包括其课程:
public function actionShow() {
$id = 1; // We set just some sample id. You could get it from request ofc.
$college = Colleges::model()->with('courses')->findByPk($id);
$this->render('show', array('college'=>$college));
}
现在在你看来打印出这个:
echo CHtml::dropDownList('courses', '', CHtml::listData($college->courses, 'id', 'name'));
Where'id'
和'name'
是Courses
模型的列。
类似的东西。