2

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

4

2 回答 2

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);

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

于 2013-07-30T07:33:45.863 回答
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',
)

我知道,下拉菜单太多,单选按钮太少。对不起。

于 2013-07-24T03:15:15.137 回答