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,现在它可以工作,但请注意这不会工作对于每次错误的发生,仅在您添加此功能的接口上。
所以我有一个用户界面,用户可以在其中上传视频。我有一个验证规则来防止视频太大。但是,如果视频比 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,现在它可以工作,但请注意这不会工作对于每次错误的发生,仅在您添加此功能的接口上。