我添加了自定义验证,除了自定义错误消息外,它正常工作。
我的自定义验证器:
public function getLength($value) {
return (strlen($value) + mb_strlen($value, 'utf8'))/2;
}
public function validateLengthMin($attribute, $value, $parameters) {
return $this->getLength($value) >= $parameters[0];
}
我的自定义错误消息:
'custom' => array(
'username' => array(
'length_min' => 'The :attribute must be at least :min characters.',
)
)
我收到的错误消息是:用户名必须至少为:min
个字符。我希望获得的是我在验证中的最小长度(即lengthMin:6
,我得到6
而不是:min
。)
另一个问题是我希望错误消息适用于所有输入,而不仅仅是username
。因此我尝试了这个:
'custom' => array(
"length_min" => "The :attribute must be at least :min characters.",
)
但它没有用。
感谢。
答案 0 :(得分:1)
与文档here一样
创建自定义验证规则时,有时可能需要 定义错误消息的自定义占位符替换。你可能会这样做 所以通过如上所述创建自定义Validator,并添加一个 将replaceXXX函数替换为验证器。
然后你必须在你的自定义验证器类中创建替换器函数,如
protected function replaceLengthMin($message, $attribute, $rule, $parameters)
{
return str_replace(':min', $parameters[0], $message);
}