Страница 1 из 1

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

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

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

Добавлено: 2017.03.08, 20:40
Restlin
У каждого rules есть возможность его ограничить определенным сценарием. При работе с моделью в контроллере вы можете установить сценарий, так вы добьетесь того что хотите.
Поэтому читайте документацию про правила валидации и использования сценариев. А исходя из вашей поста, вам нужно правило unique на 2 поля id_user, year.

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

Добавлено: 2017.03.09, 07:44
Krash
// a1 and a2 need to be unique together, and they both will receive error message
[['a1', 'a2'], 'unique', 'targetAttribute' => ['a1', 'a2']]