如何在yii中创建带单选按钮的过滤器

时间:2013-07-24 01:12:03

标签: php yii

我是Yii框架的新手。现在在管理页面中,我获得了数据的gridview。我在gridview中有一个名为approved的列,其值为0或1。我现在要介绍两个单选按钮0和1,它们分别用0和1过滤结果并显示它。  如何使用单选按钮创建过滤器

2 个答案:

答案 0 :(得分:1)

您可以将过滤器放入几乎所有内容中:

'columns'=>array(
    array(
        'name' => 'approved',
         'filter' => CHtml::radioButton(...) . CHtml::radioButton(...),
    ),
),

但是如果你想保持简单,只需将数组输入过滤器即可。

'columns'=>array(
    array(
        'name' => 'approved',
        'filter' => ['0','1'],
    ),
),

它会生成一个下拉列表(对不起,没有自动无线电按钮),但我发誓它非常实用!

如果你想要文字选项提供如下:

'filter' => ['1'=>'On', '0'=>'Off'],

此外,如果您将类型设置为布尔值

,Yii将自动为您生成过滤器
'columns'=>array(
    array(
        'name' => 'approved',
        'type' => 'boolean'
    ),
)

最后甚至还有一个设置类型的快捷方式:

'columns'=>array(
    'approved:boolean',
)

我知道,有太多的下拉菜单和太少的无线电按钮。遗憾。

答案 1 :(得分:1)

对于单选按钮,请修改 _search.php ,如下所示:

<div class="row">
    <?php echo $form->labelEx($model, 'isPublished'); ?>
    <?php echo $form->radioButtonList($model, 'isPublished', 
        array('1' => 'Yes', '0' => 'No')
    ); ?>
    <?php echo $form->error($model, 'isPublished'); ?>
</div>

确保您的模型的搜索功能已经可以使用此功能:

$criteria->compare('isPublished', $this->isPublished);

此外,请确保在模型规则中将此属性定义为安全