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' для разных проверок одного и того же атрибута именно то, что вам нужно.

Другие вопросы по тегам