Laravel 表单验证:获取错误消息 Draft
问题
我如何在视图中获取验证错误信息?
回答
在请求参数未通过验证时,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')) {
//
}