2017-06-29 89 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 --')]) 
?>