Laravel 表单验证:获取错误消息 Draft 1 个改进

问题

我如何在视图中获取验证错误信息?

回答

在请求参数未通过验证时,Laravel 会自动把用户重定向到之前的位置,同时将所有的验证错误信息自动 闪存到会话中

自动绑定的 $errors 变量

在重定向回原位置后,Lavarel 会检查会话数据中的错误信息,并自动将其绑定到视图(如果这个视图文件存在)。在视图中你可通过 $errors 变量来获取错误信息,$errors 变量是 Illuminate\Support\MessageBag的一个实例,它拥有各种方便的方法处理错误信息。

下面是在视图中显示错误信息的实际例子:

@if ($errors->any())
    <div class="alert alert-danger">
        <ul>
            @foreach ($errors->all() as $error)
                <li>{{ $error }}</li>
            @endforeach
        </ul>
    </div>
@endif

$errors 变量常用方法

取特定字段的第一个错误信息

要获取特定字段的第一个错误消息,可以使用 first 方法:

$errors = $validator->errors();

echo $errors->first('email');

获取特定字段的所有错误消息

如果需要获取指定字段的所有错误消息的数组,则可以使用 get 方法:

foreach ($errors->get('email') as $message) {
    //
}

如果要验证表单的数组字段,你可以使用 * 来获取每个数组元素的所有错误消息:

foreach ($errors->get('attachments.*') as $message) {
    //
}

获取所有字段的所有错误消息

如果要得到所有字段的所有错误消息,可以使用 all 方法:

foreach ($errors->all() as $message) {
    //
}

判断特定字段是否含有错误消息

has 方法可以被用来判断给定的字段是否存在错误信息:

if ($errors->has('email')) {
    //
}

参考

本 Wiki 尚未完善,邀您参与 如何撰写一篇高品质的 Wiki?
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!