2013-07-24 51 views
2

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

回答

1

你可以让你的过滤器进入几乎任何东西:

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

但是如果你想要让事情变得简单,只给一个数组的过滤器。

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

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

如果你想要的文字选项为他们提供这样的:

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

另外,如果你将类型设置为布尔

'columns'=>array(
    array(
     'name' => 'approved', 
     'type' => 'boolean' 
    ), 
) 

的Yii将自动为您生成一个过滤器,最后甚至有设置类型的快捷方式:

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

我也知道,下拉菜单和太少的单选按钮。抱歉。

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

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

相关问题