我是Yii框架的新手。现在在管理页面中,我得到了数据的网格视图。我在网格视图中有一个名为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'],
此外,如果您将类型设置为布尔,Yii将自动为您生成一个过滤器
'columns'=>array(
array(
'name' => 'approved',
'type' => 'boolean'
),
)
最后还有一个设置类型的快捷方式:
'columns'=>array(
'approved:boolean',
)
我知道,下拉菜单太多,单选按钮太少。对不起
对于单选按钮,如下修改_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);
此外,请确保在模型规则中将此属性定义为safe。