Php 如何使用yii中的单选按钮创建过滤器

Php 如何使用yii中的单选按钮创建过滤器,php,yii,Php,Yii,我是Yii框架的新手。现在在管理页面中,我得到了数据的gridview。我在gridview中有一个名为approved的列,其值为0或1。现在我想介绍两个单选按钮0和1,它们分别用0和1过滤结果并显示结果。 如何使用单选按钮创建过滤器您可以将过滤器制作成几乎任何东西: 'columns'=>array( array( 'name' => 'approved', 'filter' => CHtml::radioButton(...) .

我是Yii框架的新手。现在在管理页面中,我得到了数据的gridview。我在gridview中有一个名为approved的列,其值为0或1。现在我想介绍两个单选按钮0和1,它们分别用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'],
<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>
此外,如果您将类型设置为boolean,Yii将自动为您生成过滤器

'columns'=>array(
    array(
        'name' => 'approved',
        'type' => 'boolean'
    ),
)
最后还有一个设置类型的快捷方式:

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

我知道,下拉列表太多,单选按钮太少。抱歉。

对于单选按钮,请修改您的\u search.php如下:

'filter' => ['1'=>'On', '0'=>'Off'],
<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>
此外,请确保此属性在模型规则中定义为safe