2017-06-29 58 views
0

我想验证多个下拉列表,像这样:验证多个DropDownList的yii2

example error

视图/形式:

<?= 
$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 --'), 
]) 
?> 

模型规则:

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

结果:

小时无效。

有人知道什么是错?我试图自定义验证,并得到相同的错误。

回答

0

你可以检查这个答案。

更改模型的规则是这样

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

请让我知道,如果它的工作原理。

0

默认情况下多选择下拉一个字段name将发送的格式如下选项:

name=value1&name=value2 

为了能够接收数据的数组(因为它涉嫌each验证)您应该使用name[],而不是name

对于你的情况

<?= 
    $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 --')]) 
?>