Ответ 1
Начиная с Yii 1.1.11 вы можете использовать ключевое слово except
:
array('username', 'exist', 'except' => 'update'),
Взгляните на эту страницу. Здесь есть небольшой пример.
Я знаю, что вы можете иметь правило проверки, которое применяется только для одного сценария:
array('username', 'exist', 'on' => 'update'),
Теперь я хотел бы знать, можно ли сделать обратное: правило, которое применяется каждый раз, за исключением данного сценария?
Единственное решение, которое есть прямо сейчас, - это список всех остальных сценариев, но это не очень хорошо, если нам нужно добавить некоторые новостные сценарии позже.
array('username', 'exist', 'on' => array('create', 'search', ...),//all the scenarios except update
Начиная с Yii 1.1.11 вы можете использовать ключевое слово except
:
array('username', 'exist', 'except' => 'update'),
Взгляните на эту страницу. Здесь есть небольшой пример.
Работайте так же в 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 для более продвинутой техники