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字段不为空,第二条规则检查它是否具有一致的值(model是外键)。

如果我尝试验证将字段留空的表单,则会出现model2 个错误,一个用于第一个规则,一个用于第二个规则。

我只想收到“不能为空”的错误消息。

当不满足第一条规则时,有没有办法停止验证?

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 回答