Laravel无法捕获异常并重定向并显示错误消息

时间:2019-02-24 17:05:50

标签: php laravel laravel-blade

我正在尝试捕获 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,随着我的增加它一切都开始起作用。结合下面的代码。

2 个答案:

答案 0 :(得分:1)

我认为您正在尝试使用“ msg”作为“ Post太大”的键,如果是这种情况,它应该是一个关联数组。

->withErrors(['msg' => 'Post is too large'])

但是,即使有了代码,它也应该在ul元素中显示“ msg”和“ Post太大”的错误。因此,您将在该容器中有2个列表项。从技术上看,您共享的内容在重定向上没有任何错误。

答案 1 :(得分:1)

您可以在render的{​​{1}}方法内添加重定向处理程序,如下所示:

app/Exceptions/Handler.php

然后,它将向您发送Flash会话中的错误以显示在前端。