在添加了用于异常处理的自定义视图后,不再返回我的验证消息,仅-“给定数据无法通过验证。”
我在handler.php中添加了以下内容,并删除了原始的parent :: render($ request,$ exception);
public function render($request, Exception $exception){
return response()->view('error', compact('exception'), 500);
}
有一种方法可以保留我的验证消息,并在错误验证未失败时显示错误视图,因为我讨厌看到默认的“发生错误”视图。
答案 0 :(得分:1)
如果您进一步查看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);
}
答案 1 :(得分:0)
我使它能够按预期工作,以保留由我必须添加到我的App / 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);
}
}