在Yii
框架中,你怎麼abort
任何further validation
之後的規則返回FALSE
?Yii:在一個規則返回FALSE後,如何中止模型驗證?
我想實現的是:
1)停止不必要的MySQL查詢後,我們知道,一個模型沒有通過驗證。 2)更清潔,易於理解網絡用戶的錯誤消息,而不需要在控制器中手動排序它們。
非常感謝您的幫助!
在Yii
框架中,你怎麼abort
任何further validation
之後的規則返回FALSE
?Yii:在一個規則返回FALSE後,如何中止模型驗證?
我想實現的是:
1)停止不必要的MySQL查詢後,我們知道,一個模型沒有通過驗證。 2)更清潔,易於理解網絡用戶的錯誤消息,而不需要在控制器中手動排序它們。
非常感謝您的幫助!
簡而言之:沒有全局設置或解決方案:如果您查看CActiveRecord :: validate(),您可以看到所有驗證器都被調用並執行。
您可以防止對同一個屬性運行多個驗證。您必須爲所有驗證規則設置skipOnError = true。
http://www.yiiframework.com/doc/api/1.1/CValidator/#skipOnError-detail
是否時,已經是當前屬性 驗證錯誤,這個驗證規則是否跳過。默認爲false。
我認爲可以在Yii中添加一個全局選項(實際上很容易)。
謝謝!
對於用戶正在瀏覽該主題:
的validate()
方法 - 在您的自定義AR類擴展 - 位於yii/framework/base/CModel
,管線150
是你想用validate()方法驗證?因爲如果你是,那麼我不認爲有任何查詢完成的驗證方法,但不知道它。 – 2012-02-09 03:19:12
我正在做'validate()'和'save()'驗證。許多驗證是查詢數據庫的自定義方法,以及一些內置的方法('unique','exists'),我相信也會查詢MySQL。 – Sebastian 2012-02-09 03:25:29
我立場糾正,一些顯然做查詢。 – 2012-02-09 03:33:48