Validation Yii:在一条规则返回错误后,如何在中间中止模型验证?

Validation Yii:在一条规则返回错误后,如何在中间中止模型验证?,validation,yii,model,yii-validation,Validation,Yii,Model,Yii Validation,在Yii框架中,在其中一个规则返回FALSE后,如何abort任何进一步验证 我努力实现的目标是: 1) 在知道模型未通过验证后停止不必要的MySQL查询 2) 为web用户提供更清晰、易于理解的错误消息,无需在控制器中手动排序 提前感谢您的帮助 简而言之:没有全局设置或解决方案:如果查看CActiveRecord::validate(),您可以看到所有验证器都被调用和执行 可以防止对同一属性运行多个验证。您必须为所有验证规则设置skipOnError=true 已存在验证规则时是否应跳过此验

Yii
框架中,在其中一个规则返回
FALSE
后,如何
abort
任何
进一步验证

我努力实现的目标是:

1) 在知道模型未通过验证后停止不必要的MySQL查询

2) 为web用户提供更清晰、易于理解的错误消息,无需在控制器中手动排序


提前感谢您的帮助

简而言之:没有全局设置或解决方案:如果查看CActiveRecord::validate(),您可以看到所有验证器都被调用和执行

可以防止对同一属性运行多个验证。您必须为所有验证规则设置skipOnError=true

已存在验证规则时是否应跳过此验证规则 当前属性的验证错误。默认为false

我认为Yii可以添加一个全局选项(实际上非常容易)。

谢谢

对于浏览此线程的用户:


validate()
方法-将在自定义AR类中扩展-位于
yii/framework/base/CModel
第150行。

是否尝试使用validate()方法进行验证?因为如果是的话,那么我认为validate方法不会执行任何查询,不过我不确定。我正在执行
validate()
save()
验证。许多验证都是查询数据库的自定义方法,一些内置方法(
unique
exists
)我相信也会查询MySQL。我的观点是正确的,一些显然是查询。