Подтвердить что ты не робот

Yii: правила проверки, которые всегда применяются, за исключением одного сценария

Я знаю, что вы можете иметь правило проверки, которое применяется только для одного сценария:

array('username', 'exist', 'on' => 'update'),

Теперь я хотел бы знать, можно ли сделать обратное: правило, которое применяется каждый раз, за ​​исключением данного сценария?

Единственное решение, которое есть прямо сейчас, - это список всех остальных сценариев, но это не очень хорошо, если нам нужно добавить некоторые новостные сценарии позже.

array('username', 'exist', 'on' => array('create', 'search', ...),//all the scenarios except update
4b9b3361

Ответ 1

Начиная с Yii 1.1.11 вы можете использовать ключевое слово except:

array('username', 'exist', 'except' => 'update'),

Взгляните на эту страницу. Здесь есть небольшой пример.

Ссылка Doc

Ответ 2

Работайте так же в Yii 2.0.

['username', 'required', 'except' => 'update']

Каждый ключ в массиве перед именем валидатора является свойством самого класса валидатора. Вы можете увидеть доступные свойства в https://www.yiiframework.com/doc/api/2.0/yii-validators-validator

Я знаю, это старый вопрос, но каждый раз, когда я забывал, что у yii2 есть свойство исключение в классе валидатора.

https://www.yiiframework.com/doc/guide/2.0/en/input-validation для более продвинутой техники