2015-06-19 114 views
1

在Yii 1.1應用程序中,我使用CGridView來顯示數據表。如何從Yii中的CGridView過濾中排除CActiveRecord屬性?

$dataProvider = $model->search(); 
$this->widget('zii.widgets.grid.CGridView', array(
    'id' => 'my-grid', 
    'dataProvider' => $dataProvider, 
    'filter' => $model, 
    'columns' => array(
     'id', 
     'user.firstname', 
     'user.lastname', 
     'user.email', 
     'type', 
     'foo', // <-- on-the-fly added attribute 
     'bar', // <-- on-the-fly added attribute 
     ... 
    ), 
)); 

Curretly模型表(idtype),甚至在即時添加的屬性中的所有列(foobar)得到一個過濾器輸入字段。 (附加屬性的過濾器不起作用。)

我想只爲某些字段e.d.提供過濾器。 idtipe如何只啓用我需要的過濾器/禁用我不需要的過濾器?

回答

0

這裏是一個解決方案,看起來像一個解決辦法 - 只是不明確的定義不過濾性能,併爲每一個falsefilter參數:

... 
$this->widget('zii.widgets.grid.CGridView', array(
    'id' => 'my-grid', 
    'dataProvider' => $dataProvider, 
    'filter' => $model, 
    'columns' => array(
     'id', 
     ... 
     'type', 
     array(
      'name' => 'foo', 
      'filter' => false, 
     ), 
     array(
      'name' => 'bar', 
      'filter' => false, 
     ), 
     ... 
    ), 
)); 

它的工作原理,但我認爲,應該有更優雅的解決方案...