2015-06-19 54 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, 
     ), 
     ... 
    ), 
)); 

它的工作原理,但我认为,应该有更优雅的解决方案...