4

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」が定義されていません。

4

2 に答える 2

10

列配列では、次のようにname使用できるカスタム列の代わりに、データプロバイダーのモデルの属性に param を使用します。header

'columns'=>array(
    ...
    array(
        'header' => 'test',
        'value' => '"testtest"', 
    ),
    ...
)
于 2013-01-08T13:36:33.730 に答える
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();
    }
    ---
于 2013-12-14T04:34:20.223 に答える