在我的模型中(让我们说模型A )我有一个对应于另一个模型的id的字段( Model B )。在由模型A项组成的CGridView
中,我想显示该模型实例的另一个字段,而不是显示模型B的id。
这是我如何展示我的CGridView
;
$dataProvider = new CArrayDataProvider('Model A');
$dataProvider->setData($model_A_Data); // $model_A_data is an array of Model A Objects
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'data-id',
'dataProvider'=>$dataProvider, //$objects->search(),
'columns'=>array(
array('header'=>'Model A Id', 'name'=>'id'),
array('header'=>'Name', 'name'=>'name'),
array('header'=>'Date', 'name'=>'date_created'),
array('header'=>'Model B Id', 'name'=>'model_b_id'), // *HERE SHOW ANOTHER FIELD OF MODEL B*
),
));
如何更改该列以显示模型B clas的另一个字段?
由于
答案 0 :(得分:0)
在Model A
中说我有关系
array('modelbrelationname','ModelB','id'),
所以你可以拥有像这样的价值
$dataProvider = new CArrayDataProvider('Model A');
$dataProvider->setData($model_A_Data); // $model_A_data is an array of Model A Objects
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'data-id',
'dataProvider'=>$dataProvider, //$objects->search(),
'columns'=>array(
array('header'=>'Model A Id', 'name'=>'id'),
array('header'=>'Name', 'name'=>'name'),
array('header'=>'Date', 'name'=>'date_created'),
array('header'=>'Model B Id', 'value'=>'modelbrelationname.id'), // *HERE SHOW ANOTHER FIELD OF MODEL B*
),
));
答案 1 :(得分:0)
好的,我发现了$data
var CGridView
var中保存相应行数据后如何解决这个问题。
只需添加:
array('name'=>'Model B Another Field',
'value'=> 'ModelB::model()->FindByPk($data->id)->another_field'
),