Как правильно отвалидировать поле в yii2?

Доброго времени суток!
У меня есть форма с множественным выбором городов

Я добавил [] чтобы мне на сервер приходил массив id городов, как этот массив правильно отвалидировать, если указать просто cities придет одно значение, иначе yii ругается что не может найти такое поле cities[].

[['cities'], 'each', 'rule' => ['required','integer']],

мне нужно чтобы там был только тип int и поле было не пустым
  • Вопрос задан
  • 70 просмотров
Решения вопроса 1
Decadal
@Decadal
['cities', function ($attribute, $params, $validator) {
	if(is_array($this->$attribute)) {
		if(empty($this->$attribute)) {
			$this->addError($attribute, 'The array shouldnt be empty');
		}
	   foreach($this->$attribute as $item)  {
	      if(!is_int($item)) { 
	         $this->addError($attribute, 'The array contains not an integer values');
	         break; 
	      }
	   }            
	}
}],
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
[
   ['cities', 'each', 'rule' => ['required']],
   ['cities', 'each', 'rule' => ['integer']],
]

https://github.com/yiisoft/yii2/blob/master/docs/g...

иначе yii ругается что не может найти такое поле cities[]

не должен, покажите форму
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы