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

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数组返回先前的(静态)错误消息。

最佳答案

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

09-30 16:27
查看更多