在Yii 1.1应用程序中,我使用CGridView
显示数据表。
$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模型表(id
,type
)的所有列,甚至是动态添加的属性(foo
,bar
)都会获得过滤器输入字段。 (其他属性的过滤器不起作用。)
我想只为某些字段设置过滤器,例如: id
和tipe
。 如何仅启用我需要的过滤器/禁用我不需要的过滤器?
答案 0 :(得分:0)
这是一个解决方案,看起来像是一种解决方法 - 只需明确定义未过滤的属性,并将每个filter
参数设置为false
:
...
$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,
),
...
),
));
它有效,但我认为应该有更优雅的解决方案......