Yii: Как прервать проверку модели в середине, после того как одно из правил возвращает FALSE? - PullRequest
1 голос
/ 09 февраля 2012

В Yii фреймворке, как вам abort любой further validation после того, как возвращается одно из правил FALSE?

Что я пытаюсь достичь:

1)остановка ненужных запросов MySQL после того, как мы узнаем, что модель не прошла проверку.

2) более чистые, понятные сообщения об ошибках для веб-пользователя, без сортировки их вручную в контроллере.

Заранее спасибо за помощь!

Ответы [ 2 ]

3 голосов
/ 09 февраля 2012

Короче говоря: нет глобальных настроек или решений: если вы посмотрите на CActiveRecord :: validate (), вы увидите, что все валидаторы вызываются и выполняются.

Вы можете запретить запуск нескольких валидаций для одной и той жеприписывать.Вам необходимо установить skipOnError = true для всех правил проверки.

http://www.yiiframework.com/doc/api/1.1/CValidator/#skipOnError-detail

, следует ли пропустить это правило проверки, если уже есть ошибка проверки для текущего атрибута,По умолчанию используется значение false.

Я думаю, что глобальная опция может быть добавлена ​​в Yii (довольно легко на самом деле).

0 голосов
/ 17 февраля 2012

Спасибо!

Для пользователей, просматривающих эту тему:

Метод validate() - расширяемый в вашем пользовательском классе AR - находится в yii/framework/base/CModel, строка 150.

...