首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >自定义异常呈现忽略验证消息

自定义异常呈现忽略验证消息
EN

Stack Overflow用户
提问于 2019-04-10 16:42:35
回答 2查看 26关注 0票数 0

在添加了用于异常处理的自定义视图后,我的验证消息不再返回,只有-“给定的数据未能通过验证”。

我在handler.php中添加了以下代码,并删除了原始的parent::render($request,$exception);

代码语言:javascript
复制
public function render($request, Exception $exception){

    return response()->view('error', compact('exception'), 500);

}

有没有办法保留我的验证消息,并在它不是验证失败的时候显示错误视图,因为我讨厌看到默认的‘哇,一个错误已经发生’视图。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-11 08:12:36

我让它按预期工作,保留我的自定义验证消息,这些消息是由我必须添加到我的应用程序/Exceptions/Handler.php中的FormRequest创建的:

代码语言:javascript
复制
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);
    }
}
票数 0
EN

Stack Overflow用户

发布于 2019-04-10 18:32:31

如果您进一步查看parent::render()的代码,您将看到一行代码:

代码语言:javascript
复制
return $this->convertValidationExceptionToResponse($e, $request);

这会将函数应用于请求,如withInput()withErrors()

因此,您可以尝试一些类似如下的代码:

代码语言:javascript
复制
public function render(...) {
  return response()->view('error', ...)
 ->withInput(Arr::except($request->input(), $this->dontFlash))
 ->withErrors($exception->errors(), $exception->errorBag);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55608269

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档