我正在尝试捕获 PostTooLargeException 错误并使用错误消息将其重定向。这是我写的处理程序
if ($exception instanceof \Illuminate\Http\Exceptions\PostTooLargeException) {
return redirect()->back()->withErrors(['msg', 'Post is too large']);
}
我的创建页面具有检查错误的功能,并且可以在控制器上和通过路由进行即时测试时使用。
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
重定向有效,但是我无法收到错误消息,并且不会显示任何内容。我想念什么吗?
更新 下面的帖子对我有所帮助,但是还有另一个问题。那个问题是php.ini post_max_size,随着我的增加它一切都开始起作用。结合下面的代码。
答案 0 :(得分:1)
我认为您正在尝试使用“ msg”作为“ Post太大”的键,如果是这种情况,它应该是一个关联数组。
->withErrors(['msg' => 'Post is too large'])
但是,即使有了代码,它也应该在ul元素中显示“ msg”和“ Post太大”的错误。因此,您将在该容器中有2个列表项。从技术上看,您共享的内容在重定向上没有任何错误。
答案 1 :(得分:1)
您可以在render
的{{1}}方法内添加重定向处理程序,如下所示:
app/Exceptions/Handler.php
然后,它将向您发送Flash会话中的错误以显示在前端。