0

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

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

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

它让我返回到以前的 url,但没有通知错误,这就是我的问题。

我试过了

@error('message')

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

甚至

session->get('message');

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

4

2 回答 2

0

withErrors已经包含error,您所要做的就是只输入一条消息

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

并在刀片中显示

session('error')

编辑 了我的工作数据

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

在刀片文件中

@if (Session('error'))
  <p class="text-danger">{{ session('error') }}</p>
@endif
于 2020-06-17T14:00:54.190 回答
0

我想到了。我无法从 Handler.php 访问会话。

以下是该问题的解决方案:无法访问 Laravel app\Exceptions\Handler.php 中的会话

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

于 2020-06-18T12:31:53.737 回答