Laravel 使用 withErrors 重定向回来但无法显示错误

Laravel redirecting back using withErrors but can't display error

所以我有一个用户界面,用户可以在其中上传视频。我有一个验证规则来防止视频太大。但是,如果视频比 post_max_size 更大,则在到达表单请求 class 之前会出现错误屏幕,我不希望这样。我只是想通知用户,你好,这个视频太大了”。所以我去了我的 Handler.php class 并对渲染函数进行了如下更改:

public function render($request, Throwable $exception)
{
    if ($exception instanceof PostTooLargeException)
    {
        return back()->withErrors(['message' => 'Too big file']);
    }

    return parent::render($request, $exception);
}

它returns我回到了之前的url但是没有通知错误,这就是我的问题。

我试过了

@error('message')

 @foreach($errors as $error)
        {{$error}}
 @endforeach 

甚至

session->get('message');

但这些都没有帮助,似乎我的错误消息不存在。我很乐意就我做错了什么提出任何建议。

withErrors已经包含error,您只需留言

return back()->withError('Too big file');

并显示在 blade 喜欢

session('error')

已编辑 我的工作数据

return redirect()->back()->withError('Data is used in another page, delete is not possibe!');

并在 blade 文件中

@if (Session('error'))
  <p class="text-danger">{{ session('error') }}</p>
@endif

我明白了。我无法从 Handler.php.

访问 session

这里是问题的解决方案:Unable to access sessions in Laravel app\Exceptions\Handler.php

但我用了另一种方式。我在我的路由中添加了一个可为空的参数,并且在重定向时 - 如果它还不存在 -,我添加了错误,将其传递给我的 blade,现在它可以工作,但请注意这不会工作对于每次错误的发生,仅在您添加此功能的接口上。​​