首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何排除CActiveRecord属性在Yii中使用CGridView进行过滤?

如何排除CActiveRecord属性在Yii中使用CGridView进行过滤?
EN

Stack Overflow用户
提问于 2015-06-19 14:47:46
回答 1查看 140关注 0票数 1

在YII1.1应用程序中,我使用CGridView显示数据--一个表。

代码语言:javascript
复制
$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
        ...
    ),
));

模型表的所有列(idtype),甚至即时添加的属性(foobar)都会得到一个过滤器输入字段。(附加属性的筛选器不起作用。)

我只想为一些领域安装过滤器,e.d。idtipe.如何只启用我需要的过滤器/禁用我不需要的过滤器?

EN

回答 1

Stack Overflow用户

发布于 2015-06-19 17:39:33

下面是一个解决方案,看起来像是一个解决方案--只需显式地定义未过滤的属性,并将每个属性的filter参数设置为false

代码语言:javascript
复制
...
$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,
        ),
        ...
    ),
));

很有效,但我认为,应该有一个更优雅的解决方案.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30941118

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档