【发布时间】:2022-02-11 21:39:22
【问题描述】:
我正在我的 laravel 应用程序中处理 pw 更改表单。我想使用带有自定义错误消息的验证器。
我的代码如下所示:
$rules = [
'username' => 'required|max:255',
'oldpassword' => 'required|max:255',
'newpassword' => 'required|min:6|max:255|alpha_num',
'newpasswordagain' => 'required|same:newpassword',
];
$messages = [
'username.required' => Lang::get('userpasschange.usernamerequired'),
'username.max:255' => Lang::get('userpasschange.usernamemax255'),
'oldpassword.required' => Lang::get('userpasschange.oldpasswordrequired'),
'oldpassword.max:255' => Lang::get('userpasschange.oldpasswordmax255'),
'newpassword.required' => Lang::get('userpasschange.newpasswordrequired'),
'newpassword.min:6' => Lang::get('userpasschange.newpasswordmin6'),
'newpassword.max:255' => Lang::get('userpasschange.newpasswordmax255'),
'newpassword.alpha_num' => Lang::get('userpasschange.newpasswordalpha_num'),
'newpasswordagain.required' => Lang::get('userpasschange.newpasswordagainrequired'),
'newpasswordagain.same:newpassword' => Lang::get('userpasschange.newpasswordagainsamenewpassword'),
];
$validator = Validator::make($request->all(), $rules, $messages);
$validator->setCustomMessages($messages);
Log::debug("custommessages: " . json_encode($messages));
Log::debug("messages: " . json_encode($validator->messages()));
在日志 custommessages 中显示了我的自定义消息,但在下一行中有原始 messages。
我在 official doc 工作。
有人遇到过这个问题吗?
谢谢提前回答!
【问题讨论】:
-
手册中有laravel.com/docs/5.6/validation#customizing-the-error-messages 我不太明白你使用它们的方式。你能用类更新代码吗?我不太明白你是如何调用验证器的。在我看来,你在那里调用了 wring 验证器
-
@Indra 我按照它所说的那样做了一个函数(在控制器中),但没有任何改变。我应该将该函数移动到另一个文件吗?
-
@Indra 我更新了问题。
-
你需要通过运行 php artisan make:request RequestName 来创建一个请求文件并在那里添加所有的逻辑。然后在控制器中使用 use 添加请求文件,并在方法中执行类似 function update(YourRequestName $resquest){ // function logic}
-
@Indra 我收到拒绝访问错误。
AccessDeniedHttpException This action is unauthorized.我应该在哪里注册这个新请求?
标签: laravel laravel-5 laravel-5.5