我在CGridView上遇到了一些困难,其中一个字段是另一个表的外键。
有一个名为Person的表,其中包含一个id_scholarity
表学术,其中id_scholarity是PK。我想显示学者的描述,而不是身份证号码。
Gii建立了关系:
在学术模型中:
return array(
'person' => array(self::HAS_MANY, 'PERSON', 'ID_SCHOLARITY'),
);
个人模特
return array(
'id_scholarity' => array(self::BELONGS_TO, 'SCHOLARITY', 'ID_SCHOLARITY'),
);
最后我的网格(在views / person / admin.php中)
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'person-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns'=>array(
'NAME',
array('name'=>'ID_SCHOLARITY', 'value'=>'$data->ID_SCHOLARITY->DESCRIPTION'),
array(
'class'=>'CButtonColumn',
),
),
));
该页面只是空白(顺便说一句,如何让yii显示错误?)。 我做错了什么?
答案 0 :(得分:1)
试试
'columns'=>array(
'NAME',
array('value'=>'$data->id_scholarity->DESCRIPTION'),
array(
'class'=>'CButtonColumn',
),
),
当您使用箭头操作符访问其他表时,您必须使用关系名称而不是属性名称来访问它。您的代码关系名称为id_scholarity
,但您使用的是ID_SCHOLARITY
。