Yii CGridView数据是外键

时间:2015-01-09 16:01:58

标签: yii cgridview

我在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显示错误?)。 我做错了什么?

1 个答案:

答案 0 :(得分:1)

试试

'columns'=>array(

        'NAME',
        array('value'=>'$data->id_scholarity->DESCRIPTION'),

        array(
            'class'=>'CButtonColumn',
        ),
    ),

当您使用箭头操作符访问其他表时,您必须使用关系名称而不是属性名称来访问它。您的代码关系名称为id_scholarity,但您使用的是ID_SCHOLARITY