У меня есть список флажков, которые не связаны с самой моделью, как и остальная часть формы:
echo Html::checkboxList('options', $selected_options, $options, ['class' => 'checkbox']);
В модели у меня есть следующие правила:
public function rules() {
return [
....*/
[['options'], 'integer'],
['options', 'optValidation', 'on' => 'update'],
];
}
И следующий валидатор:
public function optValidation($attribute, $params) {
foreach ($attribute as $attr){
if ($attr == 1) {
$return = true;
}
else {
$return = false;
}
}
if (!$return) {
$this->addError($attribute, 'At least one checkbox has to be selected!');
}
}
К сожалению, при отправке формы ничего не происходит, как будто нет правил проверки поля «параметры». Где подвох?
option
какpublic
в модели, а затем проверить с помощью модели. - person Insane Skull   schedule 15.09.2015break
в вашем цикле? - person robsch   schedule 15.09.2015Option
уже объявлен какpublic
в модели @InsaneSkull. Также пробовал использоватьOption
какOption[]
, поскольку это массив, но безуспешно. @robsch, мне было интересно об этом, но даже если в методе всего$this->addError()
, никаких изменений нет. - person jeesus   schedule 15.09.2015public $option
, почему бы не использовать его с моделью в форме? Если вы не добавитеmodel
вcheckbox
, он просто пропустит ваши правила проверки, потому что не найдет их. - person Insane Skull   schedule 15.09.2015