cdatacolumn cbuttoncolumn cactivedataprovider yii

cbuttoncolumn - ¿Cómo agregar una columna personalizada en CGridView en YII?



cgridview dataprovider (2)

Necesito agregar una columna en CGridView.

Yo uso esto:

$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'', ) ), ));

Pero tengo un error:

La propiedad "User.test" no está definida.


Puedes escribir código normal en CGridView así.

''columns''=>array( ''username'', ''name'', ''email'', ''creationDate'', ''test'', --- ),

Si pones un código como este en tu modelo respectivo.

--- public $test ; public function afterFind() { $this->test = ''Test Variable'' ; // put your custom code to reflect exact need return parent::afterFind(); } ---


Ya casi está allí, en el conjunto de columnas usaría el parámetro param para los atributos del modelo en el proveedor de datos, en lugar de las columnas personalizadas, puede usar el header así:

''columns''=>array( ... array( ''header'' => ''test'', ''value'' => ''"testtest"'', ), ... )