我添加了一个自定义验证错误Validator::resolver()
,如下所示:
class Rest extends Validator
{
public function addFailure($attribute, $rule, $parameters = [])
{
$message = $this->getMessage($attribute, $rule);
$message = $this->makeReplacements($message, $attribute, $rule, $parameters);
$customMessage = new MessageBag();
$customMessage->merge(['code' => strtolower($rule.'_rule_error')]);
$customMessage->merge(['message' => $message]);
$this->messages->add($attribute, $customMessage);
}
}
我使用解析器调用它AppServiceProvider
:
Validator::resolver(function($translator, $data, $rules, $messages)
{
return new Rest($translator, $data, $rules, $messages);
});
在尝试更改属性名称时,它不起作用:
$request->validate(
[
'group_id' => 'required'
], [],
[
'group_id' => 'the lesson group'
]);
我通常在提供者注册时扩展验证器
例如。:
Validator::extend('foo', function ($attribute, $value, $parameters, $validator) {
return $value == 'foo';
});
请记住,您需要返回 true 或 false。
更多信息:https : //laravel.com/docs/6.x/validation#using-extensions
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句