Exebeche
@Exebeche
Осваиваю программирование

Как создать правила верификации формы/модели для разных экшенов контроллера?

Имеются формы со схожими полями, но у одной поля одни обязательны, а у другой - другие.
Можно как-то задать "required" в зависимости от экшена?
Может только по контроллеру, но тоже - как?
UPD
В "rules" модели, а не во вьюхе... Во вьюхе - просто. Но так же просто и левые данные через это пропустить.
  • Вопрос задан
  • 47 просмотров
Решения вопроса 1
@k600ii
Если я правильно понял, то Вы используете одну модель для этих форм.
Вам нужно использовать сценарии в модели.

В модели:
class User extends ActiveRecord
{
const SCENARIO_LOGIN = 'login';
const SCENARIO_REGISTER = 'register';

public function scenarios()
{
return [
self::SCENARIO_LOGIN => ['username', 'password'],
self::SCENARIO_REGISTER => ['username', 'email', 'password'],
];
}
}

В контроллере:
$model = new User;
$model->scenario = User::SCENARIO_LOGIN;

Соответственно в разных action можно задать разные сценарии.

P.S. Как альтернативный вариант можно так же задать условия валидации, при котором оно будет срабатывать.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы