在验证时动态切换错误消息?

mar*_*ark 5 validation cakephp cakephp-2.1

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

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

当然不起作用(我猜太晚了)

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

$this->validate['name']['validateLength']['message'] = $length . 'chars';
Run Code Online (Sandbox Code Playgroud)

到目前为止也没用过.它总是返回$ validate数组中的前一个(静态)错误消息

ADm*_*mad 9

public function customValidator($data) {
    ....
    if ($validates) {
        return true;
    } else { 
        return 'my new error message';
    }
}
Run Code Online (Sandbox Code Playgroud)