Yii过滤CHtml :: dropDownList组结果

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Yii过滤CHtml :: dropDownList组结果相关的知识,希望对你有一定的参考价值。

我使用Chtml :: dropDownList作为Yii中一列的过滤器

array(
    'name' => 'type',
    'value' => '$data->getDay()', 
    'filter'=>CHtml::dropDownList(
        'work[day]',
        $work->day,
        $this->t(Work::$days),
        array('prompt'=>$this->t('All'),'class'=>'form-control'))
);

选项列表如下

Work::$days = array('weekday' => 'Weekday', 'weekend' => 'Weekend');

如何使用这两个选项进行过滤

array('Monday', 'Tuesday' ...);
答案

你只需要研究两件事

  1. 您的型号名称是Work而不是work,yii以相同的格式生成与表格或过滤器输入相关的字段,即Modelname[fieldname]。 这是一个很好的做法,如果您手动提供字段名称并且字段与活动记录相关,则应使用Model::class打印类名而不是手动键入。 然后将空值作为选定值传递,以便默认显示所有记录,并且下拉列表中选择了占位符All
  2. 您是否将type字段中的值保存为Mondaymonday。 如果是星期一那么你必须将$days数组更改为Work::$days=array('Monday'=>'Monday','Tuesday'=>'Tuesday'),否则它保持原样。

所以你的列定义如下所示

array(
    'name' => 'type',
    'value' => '$data->getDay()', 
    'filter'=>CHtml::dropDownList(
        Work::class.'[name]',
        '',
        $this->t(Work::$days),
        array('prompt'=>$this->t('All'),'class'=>'form-control'))
);

希望这开始为你工作。

以上是关于Yii过滤CHtml :: dropDownList组结果的主要内容,如果未能解决你的问题,请参考以下文章

在Yii1中的Chtml :: link()中显示fa图标

Yii:javascript 的参数化调用 - 引号问题

Yii+datepicker bootstrap 如何更新网格

防止在 Yii 框架上使用 ajaxButton/ajaxSubmitButton 加载 jQuery 资产

PHP 的YII框架中CActiveForm dropDownList联动效果

Yii2:是不是可以从登录 Yii 调试器中过滤掉一些查询?