在添加了用于异常处理的自定义视图后,我的验证消息不再返回,只有-“给定的数据未能通过验证”。
我在handler.php中添加了以下代码,并删除了原始的parent::render($request,$exception);
public function render($request, Exception $exception){
return response()->view('error', compact('exception'), 500);
}
有没有办法保留我的验证消息,并在它不是验证失败的时候显示错误视图,因为我讨厌看到默认的‘哇,一个错误已经发生’视图。
发布于 2019-04-11 08:12:36
我让它按预期工作,保留我的自定义验证消息,这些消息是由我必须添加到我的应用程序/Exceptions/Handler.php中的FormRequest创建的:
use Illuminate\Validation\ValidationException;
public function render($request, Exception $exception)
{
if($exception instanceof ValidationException) {
return parent::render($request, $exception);
}
else{
return response()->view('error', compact('exception'), 500);
}
}
发布于 2019-04-10 18:32:31
如果您进一步查看parent::render()
的代码,您将看到一行代码:
return $this->convertValidationExceptionToResponse($e, $request);
这会将函数应用于请求,如withInput()
和withErrors()
。
因此,您可以尝试一些类似如下的代码:
public function render(...) {
return response()->view('error', ...)
->withInput(Arr::except($request->input(), $this->dontFlash))
->withErrors($exception->errors(), $exception->errorBag);
}
https://stackoverflow.com/questions/55608269
复制相似问题