Yii: Как прервать проверку модели в середине, после того, как одно из правил возвращает FALSE?
В Yii
рамки, как ты abort
любой further validation
после возврата одного из правил FALSE
?
То, что я пытаюсь достичь, это:
1) остановка ненужных запросов MySQL после того, как мы узнаем, что модель не прошла проверку.
2) более понятные, понятные сообщения об ошибках для веб-пользователя, без сортировки их вручную в контроллере.
Заранее спасибо за вашу помощь!
2 ответа
Вкратце: глобальных настроек или решений нет: если вы посмотрите на CActiveRecord::validate(), вы увидите, что все валидаторы вызываются и выполняются.
Вы можете запретить запуск нескольких проверок для одного и того же атрибута. Вы должны установить skipOnError=true для всех правил проверки.
http://www.yiiframework.com/doc/api/1.1/CValidator/
следует ли пропустить это правило проверки, если уже есть ошибка проверки для текущего атрибута. По умолчанию false.
Я думаю, что глобальная опция может быть добавлена в Yii (довольно легко на самом деле).
Спасибо!
Для пользователей, просматривающих эту тему:
validate()
метод - для расширения в вашем собственном классе AR - находится в yii/framework/base/CModel
линия 150