我有一个模型,例如SomeForm。有一个领域。该字段包含一系列选定的选项。是否可以为此字段编写规则以检查选择了多少项?我需要写一个条件,用户必须检查最少2个选项和最多5个。
我尝试过类似的东西,但它不起作用(如果选择了至少一个选项,则可以提交表单)
<div>
<input id="number1">
<select id="operator">
<option>+</option>
<option>-</option>
<option>*</option>
<option>/</option>
</select>
<input id="number2">
<button type="button" id="equals">=</button>
<span id="output"></span>
</div>
答案 0 :(得分:1)
是的,你可以,但是你在$params
的最后一个条件elseif (count($params)<2)
而不是$params
数组中有一个错误的变量,即$this->ingredients
。而且您不需要进行第一次检查,将属性添加到所需规则就足以检查提交时是否为空。
将验证功能更改为
public function checkIsArray( $attribute , $params ) {
if ( count ( $this->ingredients ) > 5 ) {
$this->addError ( $attribute , "Choose No more than 5" );
} elseif ( count ( $this->ingredients ) < 2 ) {
$this->addError ( $attribute , "Choose No less than 2" );
}
}
我刚在使用 kartik\Select2
multiselect发布之前对其进行了测试,它运行得很好,但是如果它仍然反应相同,则需要添加 controller/action
代码希望它能帮到你。