Создание правила валидации формы для конкретного экшена

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Web Dev
Сообщения: 6
Зарегистрирован: 2016.07.28, 11:01

Создание правила валидации формы для конкретного экшена

Сообщение Web Dev »

Добрый день!
можно ли для конкретного экшена сделать ajax-валидацию?
есть таблица с полями id, id_user, year, days. Суть её в том что для каждого юзера может создаваться сколь угодно лет, но при этом года для каждого юзера должны быть уникальны, т.е. пара значений в таблице id_user и year должны быть уникальны.
и соответственно при заполнении формы (поля : Имя пользователя, год, дни ) нужно чтобы проверялось есть ли для введённого пользователя уже этот год в базе или нет. Но при этом нужно чтобы это правило валидации применялось только при добавлении новой записи, а при обновлении не применялось.
возможно ли это реализовать в модели в rules? возможно ли это реализовать в контроллере в экшене?
спасибо!
Restlin
Сообщения: 139
Зарегистрирован: 2011.09.09, 18:12

Re: Создание правила валидации формы для конкретного экшена

Сообщение Restlin »

У каждого rules есть возможность его ограничить определенным сценарием. При работе с моделью в контроллере вы можете установить сценарий, так вы добьетесь того что хотите.
Поэтому читайте документацию про правила валидации и использования сценариев. А исходя из вашей поста, вам нужно правило unique на 2 поля id_user, year.
Krash
Сообщения: 29
Зарегистрирован: 2016.04.19, 12:43

Re: Создание правила валидации формы для конкретного экшена

Сообщение Krash »

// a1 and a2 need to be unique together, and they both will receive error message
[['a1', 'a2'], 'unique', 'targetAttribute' => ['a1', 'a2']]
Ответить