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

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