laravel 表单验证失败后,错误信息存于 $errors(messagebag 实例);可用 $errors->get('field') 获取字段全部错误,$errors->has('field') 判断是否存在错误,$errors->first('field') 获取首个错误,$errors->messages() 遍历所有字段及错误,$errors->all() 获取全部错误扁平数组。

在 Laravel 中,表单验证失败后,错误信息默认存储在 $errors 变量中(Blade 模板可用),它是一个 MessageBag 实例。要精准定位具体是哪个字段出错、错误内容是什么,关键在于理解 $errors 的结构和正确使用其方法。
查看特定字段的全部错误信息
最常用的方式是用 $errors->get('字段名') 获取指定字段的所有错误消息数组:
-
$errors->get('email')返回如['The email field is required.', 'The email must be a valid email address.'] - 在 Blade 中可配合
@foreach遍历显示:
get('email') as $message)>
{{ $message }}
判断某个字段是否有错误
用 $errors->has('字段名') 判断字段是否验证失败,适合控制元素显隐或添加 CSS 类:
@if($errors->has('password')) class="is-invalid" @endif- 注意:该方法只返回布尔值,不提供错误内容
获取第一个错误(简化提示)
若只需显示首个错误,用 $errors->first('字段名') 更简洁:
-
{{ $errors->first('name') }}输出如"The name field is required." - 支持默认文案:
{{ $errors->first('age', '年龄格式不正确') }}
遍历所有错误字段与信息
调试或日志记录时,可遍历整个 $errors:
@foreach($errors->messages() as $field => $messages)- 内层
@foreach($messages as $message)即可拿到每个字段的每条错误 -
$errors->all()返回所有错误的扁平数组,不含字段名,适合全局提示











