我使用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' ...);
答案 0 :(得分:0)
你只需要研究两件事
您的模型名称为Work
而不是work
,yii以相同的格式生成与表单或过滤器输入相关的字段,即Modelname[fieldname]
。
一个好的做法是,如果您手动提供字段名称并且字段与活动记录相关,则应使用Model::class
打印类名而不是手动输入。
然后将空值作为选定值传递,以便默认显示所有记录,并且下拉列表中选择了占位符All
您是否将字段type
中的值保存为 Monday
或 monday
。< / p>
如果是星期一,则必须将$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'))
);
希望这开始为你效劳。