YII如何获得关系

时间:2013-08-05 07:38:18

标签: yii criteria

我有两个表格Center和Class。这个中心类之间的关系。 阶级关系,

'centers' => array(self::MANY_MANY, 'Center', 'centerclass(cl_id, cent_id)'),

和中心的关系,

'classes' => array(self::MANY_MANY, 'Class', 'centerclass(cent_id, cl_id)'),

现在,如果我有中心ID,我怎样才能获得与该中心相关联的所有课程。

请给我Yii的标准。

谢谢。

2 个答案:

答案 0 :(得分:0)

$center = Center::model()->with('classes')->findByPk($centerId);
foreach($center->classes as $class){
...
}

答案 1 :(得分:0)

您可以使用'with()'方法在查询中应用JOIN关系:

$center = Center::model()->with('classes')->findByPk($centerId);

使用这样的foreach获取类:

foreach($center->classes as $class){
     echo $classes->cl_id; // Attribute that you like to show.
}

编辑:

在CGridView中使用:

控制器:

$dataProvider =  new CArrayDataProvider('Class');
$dataProvider->setData($center->classes);

在渲染中添加$ dataProvider以将其发送到视图。

更多信息:http://www.yiiframework.com/doc/api/1.1/CDataProvider

或直接在视野中:

$this->widget('zii.widgets.CListView', array(
        'dataProvider'=>new CActiveDataProvider('Class', array(
                                                          'data'=>$center->classes)
         ),
    ....

更多信息: http://www.yiiframework.com/doc/api/1.1/CBaseListView