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

Laravel动态创建的数组类型表单字段对应错误提示显示问题

问题原因

Laravel 对数组命名的表单字段,验证错误的索引规则是用点语法替代数组的方括号层级,你之前拼接错误键的格式没有补全层级间的点分隔符,所以无法匹配到对应的错误提示。同时注意 Blade 模板中 HTML 属性里的变量需要用 {{ }} 包裹输出。


修正后可正常运行的代码

@foreach ($names as $name)
    <div class="form-group">
        <input type="text" name="name[{{ $name->id }}]['first']['value']" value="">
        @if ($errors->has("name.{$name->id}.first.value"))
            <em class="invalid-feedback">
                {{ $errors->first("name.{$name->id}.first.value") }}
            </em>
        @endif
    </div>
    <div class="form-group">
        <input type="text" name="name[{{ $name->id }}]['last']['value']" value="">
        @if ($errors->has("name.{$name->id}.last.value"))
            <em class="invalid-feedback">
                {{ $errors->first("name.{$name->id}.last.value") }}
            </em>
        @endif
    </div>
@endforeach

优化方案(Laravel 5.8及以上版本适用)

可以使用 Laravel 内置的 @error 指令简化写法,还能同时给输入框加错误状态类:

@foreach ($names as $name)
    <div class="form-group">
        <input type="text" name="name[{{ $name->id }}]['first']['value']" value="" class="@error("name.{$name->id}.first.value") is-invalid @enderror">
        @error("name.{$name->id}.first.value")
            <em class="invalid-feedback">
                {{ $message }}
            </em>
        @enderror
    </div>
    <div class="form-group">
        <input type="text" name="name[{{ $name->id }}]['last']['value']" value="" class="@error("name.{$name->id}.last.value") is-invalid @enderror">
        @error("name.{$name->id}.last.value")
            <em class="invalid-feedback">
                {{ $message }}
            </em>
        @enderror
    </div>
@endforeach

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 18:54:03