我使用的是Laravel 7.0。
在我的app/Exceptions/Handler.php方法中;渲染";。我需要为";PostTooLargeException";。
若请求是否来自ajax,则响应会有所不同。
问题是如果请求不是ajax。我试图返回一些错误消息,但任何我想在函数"中返回的内容;with((";或";with Errors(("它不存在于刀刃视图中。
出了什么问题,为什么会发生?
我的代码:
if ($exception instanceof PostTooLargeException) {
if ($request->ajax()) {
return response(['message' => "The file you are trying to send is too large "], 422);
} {
$errors = new MessageBag();
$errors->add('error', 'test');
return Redirect::back()->withErrors($errors);
}
}
刀片:
@if($errors->any())
<div class="alert alert-danger">
<ul class="list-unstyled">
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
如果没有MessageBag
,您可以通过将数组传递给withErrors
来实现这一点
return redirect()->back()->withErrors(['error' => "test"]);