Yii
フレームワークでは、ルールの 1 つが返された後、どのように処理しますabort
か?further validation
FALSE
私が達成しようとしていることは次のとおりです。
1) モデルが検証に合格しなかったことがわかった後、不要な MySQL クエリを停止します。
2) コントローラーでエラー メッセージを手動で並べ替えることなく、Web ユーザーにとってエラー メッセージがわかりやすく、わかりやすくなります。
よろしくお願いします。
Yii
フレームワークでは、ルールの 1 つが返された後、どのように処理しますabort
か?further validation
FALSE
私が達成しようとしていることは次のとおりです。
1) モデルが検証に合格しなかったことがわかった後、不要な MySQL クエリを停止します。
2) コントローラーでエラー メッセージを手動で並べ替えることなく、Web ユーザーにとってエラー メッセージがわかりやすく、わかりやすくなります。
よろしくお願いします。
つまり、グローバルな設定や解決策はありません。CActiveRecord::validate() を見ると、すべてのバリデータが呼び出されて実行されていることがわかります。
同じ属性に対して複数の検証を実行することを防ぐことができます。すべての検証ルールに対して skipOnError=true を設定する必要があります。
http://www.yiiframework.com/doc/api/1.1/CValidator/#skipOnError-detail
現在の属性にすでに検証エラーがある場合に、この検証ルールをスキップするかどうか。デフォルトは false です。
グローバル オプションを Yii に追加できると思います (実際には非常に簡単です)。
ありがとうございました!
このスレッドを閲覧しているユーザーの場合:
validate()
カスタム AR クラスで拡張するメソッドは、150 行目にありますyii/framework/base/CModel
。