5

使用新的验证器对象 - 是否可以替换触发的验证规则内的验证错误?不仅返回静态错误消息,而且可能是一些动态生成的错误消息?

public function validateLength($data) {
    ...
    $length = mb_strlen($data['name']);
    $this->validator()->getField('name')->setRule('validateLength', array('message' => $length . 'chars')); 
    ...
}

当然不起作用(我猜为时已晚)

例如,我想实际返回字符串的长度(您使用了 100 个允许的 111 个字符) - 但为此我需要能够从(自定义)验证方法内部替换消息

$this->validate['name']['validateLength']['message'] = $length . 'chars';

到目前为止也从未工作过。它总是从 $validate 数组返回上一个(静态)错误消息

4

2 回答 2

9
public function customValidator($data) {
    ....
    if ($validates) {
        return true;
    } else { 
        return 'my new error message';
    }
}
于 2012-07-16T12:54:39.340 回答
2

以下代码段应该可以解决问题:

public function validateLength($data) {
    ...
    $length = mb_strlen($data['name']);
    $this->validator()->getField('name')->getRule('validateLength')->message = $length . 'chars';
    ...
}
于 2012-07-16T05:19:42.343 回答