【问题标题】:Yii filter CHtml::dropDownList group resultsYii 过滤 CHtml::dropDownList 组结果
【发布时间】:2018-08-13 23:10:57
【问题描述】:

我使用 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' ...);

【问题讨论】:

  • 如果它对你有用,请选择答案

标签: yii


【解决方案1】:

你只需要研究两件事

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

希望这对你有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-22
    相关资源
    最近更新 更多