我试图在一个CGridView中显示两个数据库表源。 2个表是reg.students和login.user .. 我的学生模特关系是,
public function relations()
{
Yii::app()->getModule('user');
return array(
'royaltyOutstandings' => array(self::HAS_MANY, 'RoyaltyOutstanding', 'studentID'),
'srkMedicalInfos' => array(self::HAS_MANY, 'SrkMedicalInfo', 'studentID'),
'parents' => array(self::HAS_ONE, 'SrkParents', 'studentID'),
'srkStudentWorksheets' => array(self::HAS_MANY, 'SrkStudentWorksheet', 'studentID'),
'user' => array(self::BELONGS_TO, 'User', 'centre_id'),
);
}
在用户模块中,
public function tableName()
{ return 'login.user'; }
在cgridview columns数组中,
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'students-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns'=>array(
array(
'header' => 'No.',
'value' => '$row+1',
),
array('name' => 'user.centre_id',
'value'=>'$data->user->centre_id',
),
'... // & so on
控制器操作是,
public function actionAdmin()
{
$this->layout = 'column3';
$form = new Reports ;
$model=new Students('search');
$model->unsetAttributes(); // clear any default values
if(isset($_GET['Students']))
$model->attributes=$_GET['Students'];
$this->render('admin',array(
'model'=>$model,
'form'=>$form,
));
}
答案 0 :(得分:1)
如果我理解正确,您希望在gridview中显示一个或多个关系。 如果这是您想要的,请查看本教程:http://www.yiiframework.com/wiki/281/searching-and-sorting-by-related-model-in-cgridview/ 本教程不仅向您展示如何在gridview中显示关系,还向您展示如何对数据进行排序和过滤。祝你好运!