阅读(3630) (10)

Laravel 8 显示验证错误信息

2021-06-25 11:18:20 更新

那么,如果传入的请求参数未通过给定的验证规则呢?正如前面所提到的,Laravel 会自动将用户重定向到之前的位置。另外,所有的验证错误信息会自动存储到 闪存 session 中。

再次提示,我们没有必要在 GET 路由中显式地绑定错误信息到视图中。这是因为 Laravel 会检查 session 数据中的错误,如果可用的话,将会自动将其绑定到视图中去。其中的 $errors 变量是 Illuminate\Support\MessageBag 的一个实例。要获取关于该对象更多的信息, 请参阅这篇文档

技巧:$errorsweb 中间件组提供的 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 -->