Попытался организовать собственную валидацию вот модель
class SearchForm extends Model
{
public $ingredients;
public function rules(){
return[
['ingredients', function ($attribute, $params) {
if (count($this->attribute)<2) {
$this->addError($attribute, 'Выберите больше ингредиентов.');
}
if (count($this->attribute)>5) {
$this->addError($attribute, 'Нельзя выбрать больше 5 ингредиентов.');
}
}]
];
}
}
контролер
public function actionIndexSite()
{
$model=new SearchForm();
return $this->render('indexsite', [
'model' => $model
]);
}
часть вида
<?php $form = ActiveForm::begin(); ?>
<?php echo $form->field($model, 'ingredients')->widget(Select2::classname(), [
'language' => 'en',
'data' => $ingredients,
'options' => ['multiple' => true, 'placeholder' => 'Select ingredients'],
]); ?>
<div class="form-group">
<div class="col-lg-offset-1 col-lg-11">
<?= Html::submitButton('Search', ['class' => 'btn btn-primary']) ?>
</div>
</div>
<?php ActiveForm::end(); ?>
вот такой массив получаю
SearchForm [
'ingredients' => [
0 => '1'
]
]
валидация проходит и страница перегружается почему не подскажите и как правильно.