You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Blade的@error()指令获取命名错误袋的错误信息?

Laravel中使用@error指令捕获NamedBag验证错误

我已经实现了带NamedBag的表单请求验证,代码如下:

$validator = Validator::make($request->all(),
  ['name' => 'required|max:255',
   'second_name' => 'required|max:255',
  ]
)->validateWithBag('create');

if ($validator->fails()) {
  return redirect()->back()
    ->withErrors($validator, 'create')
    ->withInput();
}

我想知道如何用@error()指令捕获这个NamedBag的错误信息?之前尝试了下面的写法但没成功:

@error('namedBag.name')
  <div class="alert alert-danger">{{ $message }}</div>
@enderror

目前我用的解决方案是:

@if($errors->create->has('name'))
    <div class="alert alert-danger">{{ $errors->create->first('name') }}</div>
@endif

请问能不能用@error()指令实现?


解决方案

当然可以用@error指令,只需要把NamedBag的名称作为第二个参数传入@error指令即可,正确写法如下:

@error('name', 'create')
    <div class="alert alert-danger">{{ $message }}</div>
@enderror

@error指令的第二个参数就是用来指定错误袋(NamedBag)名称的,之前的写法错误地把错误袋名称和字段名拼接在一起了,Laravel并不识别这种格式。

当你传入第二个参数后,@error会自动去对应名称的错误袋中查找指定字段的错误信息,和你用$errors->create->has('name')的效果完全一致,而且写法更简洁。

内容的提问来源于stack exchange,提问作者Domenico Monaco

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 20:12:01