Есть две необходимые функции: установить пароль при регистрации и смене пароля, если пользователь забыли его. Когда пользователь подписывается, длина пароля должна быть не менее 4 символов; когда изменения проходят – не менее 5 символов.
Просмотр является общим для регистрации и изменения прохода. Очевидно, что существует также 2 действия, в которых используется либо сценарий «регистрация», либо «изменение». Фрагмент кода в модели:
public function rules() { return [ ['password', 'string', 'min' => 4, 'on' => 'signup'], ['password', 'string', 'min' => 5, 'on' => 'change'], ]; }
Но я хочу сделать это через сценарии () . Как это сделать? Я новичок в Yii, поэтому не понял, когда и как использовать сценарии () . Благодарю.
UPD . Мне нужно использовать сценарии () для поля ONE с правилом ONE , но DIFFERENT аргументы этому правилу. как определить сценарий в Yii2? – Это не мое дело.
Поскольку документация о scenarios()
говорит: По умолчанию реализация этого метода вернет все сценарии, найденные в объявлении rules (). Поэтому, как правило, вам не нужно переопределять этот метод, потому что он будет искать on
клавишах массива, чтобы установить активные атрибуты для текущего сценария, чтобы их правильно проверить.
Поэтому в вашем случае 'on' => 'some scenario'
для разных валидаций одного и того же атрибута – именно то, что вам нужно.