4

次の検証ルールを持つActiveRecordがあるとしましょう。

public function rules() {
    return array(
        array('model', 'required'),
        // ....
        array('model', 'exist',
            'allowEmpty' => false,
            'attributeName' => 'id',
            'className' => 'Model',
            'message' => 'The specified model does not exist.'
        )
    );
}

最初のルールはフィールドを空白にしないように強制しmodel、2番目のルールはフィールドに一貫した値があることを確認します(model外部キーです)。

フィールドを空のままにしてフォームを検証しようとすると、model2つのエラーが発生します。1つは最初のルール用で、もう1つは2番目のルール用です。

「空白にすることはできません」というエラーメッセージのみを受け取りたいのですが。

最初のルールが満たされないときに検証を停止する方法はありますか?

4

1 に答える 1

10

使用できますskipOnError

return array(
    array('model', 'required'),
    // ....
    array('model', 'exist',
        'allowEmpty' => false,
        'attributeName' => 'id',
        'className' => 'Model',
        'message' => 'The specified model does not exist.',
        'skipOnError'=>true
    )
);

編集:

おそらくここのフィールド名model. そのため、実装するときはそのことを念頭に置いてください。

于 2012-08-17T16:02:36.937 に答える