我需要在CGridView中添加一个列。
我用这个:
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'user-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'pager' => array(
'firstPageLabel' => '<<',
),
'columns'=>array(
'username',
'name',
'email',
'creationDate',
array(
'class' => 'CButtonColumn',
'template' => '{change} {view}',
'buttons' => array(
'change' => array(
'url'=> "'http://test.com/userservice/".$model->username."'",
),
),
),
array(
'name' => 'test',
'value' => 'testtest',
)
),
));
但我收到了错误:
未定义属性“User.test”。
答案 0 :(得分:10)
你几乎就在那里,在你的列数组中,你会在数据提供者中使用name
参数来表示模型的属性,而不是像你这样使用header
的自定义列:
'columns'=>array(
...
array(
'header' => 'test',
'value' => '"testtest"',
),
...
)
答案 1 :(得分:4)
你可以像这样在CGridView上编写普通代码。
'columns'=>array(
'username',
'name',
'email',
'creationDate',
'test',
---
),
如果您将此类代码放在各自的型号上。
---
public $test ;
public function afterFind() {
$this->test = 'Test Variable' ; // put your custom code to reflect exact need
return parent::afterFind();
}
---