简体   繁体   English

验证多个 DropDownList yii2

[英]Validate multiple DropDownList yii2

I'm trying validate a multiple dropdownlist, like this:我正在尝试验证多个下拉列表,如下所示:

示例错误

view/form:查看/表格:

<?=
$form->field($hours, 'hours_id', ['template' => '{label}{input}<span class="help-block">{hint}{error}</span>'])->dropDownList(Hours::getHierarchy(), ['size' => 10, 'multiple' => 'multiple'], ['prompt' => Yii::t('app', '-- Select --'),
])
?>

model rules:模型规则:

['hours_id', 'each', 'rule' => ['integer']],

Result:结果:

Hour is invalid.小时无效。

Someone knows what's wrong?有人知道怎么了? I tried to custom validation, and i get the same error.我尝试自定义验证,我得到了同样的错误。

像这样更改您的模型规则

 [['hours_id'], 'each','integer'],

By default multi select drop down for a field name will send options in following format:默认情况下,字段name的多选下拉菜单将以以下格式发送选项:

name=value1&name=value2

To be able to receive data as array (as it suspected for each validation) You should use name[] instead of name .为了能够以数组的形式接收数据(因为它怀疑each验证)您应该使用name[]而不是name

For your case对于您的情况

<?=
    $form->field($hours, 'hours_id[]', ['template' => '{label}{input}<span class="help-block">{hint}{error}</span>'])->dropDownList(Hours::getHierarchy(), ['size' => 10, 'multiple' => 'multiple'], ['prompt' => Yii::t('app', '-- Select --')])
?>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM