Laravel 8 显示验证错误信息
那么,如果传入的请求参数未通过给定的验证规则呢?正如前面所提到的,Laravel 会自动将用户重定向到之前的位置。另外,所有的验证错误信息会自动存储到 闪存 session 中。
再次提示,我们没有必要在 GET
路由中显式地绑定错误信息到视图中。这是因为 Laravel 会检查 session 数据中的错误,如果可用的话,将会自动将其绑定到视图中去。其中的 $errors
变量是 Illuminate\Support\MessageBag
的一个实例。要获取关于该对象更多的信息, 请参阅这篇文档 。
技巧:
$errors
由web
中间件组提供的Illuminate\View\Middleware\ShareErrorsFromSession
中间件绑定到视图中。当该中间件被应用后,$errors
变量在您的视图中总是可用的,因此您可以假设$errors
变量总是被定义了且总是安全可用的。
所以,在如下的例子中,当表单验证失败时,用户将被重定向到控制器的 create
方法中,我们可在视图中显示错误信息:
<!-- /resources/views/post/create.blade.php -->
<h1>Create Post</h1>
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<!-- Create Post Form -->