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