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

Laravel表单提交时描述文本域form-control错误提示失效问题

解决方案

1. 添加「至少350字」的校验规则

首先在后端验证逻辑中为item_description字段添加规则,两种实现方式可选:

方式一:使用表单请求类(推荐)

如果项目中用了自定义表单请求类(比如ItemRequest.php),在rules()方法里补充规则:

public function rules()
{
    return [
        // 保留其他字段的原有规则
        'item_description' => 'required|min:350',
    ];
}

如果需要自定义错误提示文案,可在请求类中添加messages()方法:

public function messages()
{
    return [
        'item_description.min' => '描述内容至少需要填写350字',
        'item_description.required' => '描述内容不能为空',
    ];
}

方式二:在控制器中直接验证

如果是在控制器方法内做验证,修改validate逻辑:

public function store(Request $request)
{
    $validatedData = $request->validate([
        // 保留其他字段的原有规则
        'item_description' => 'required|min:350',
    ]);

    // 后续业务逻辑
}

2. 修复错误提示失效问题

从你的Blade代码来看,前端错误提示的结构是正确的,失效大概率是以下原因导致:

原因一:后端未配置验证规则(最常见)

如果后端没有为item_description设置任何验证规则,Laravel不会生成对应的错误信息,前端的@error('item_description')自然不会触发。先确保完成第一步的校验规则配置。

原因二:invalid-tooltip样式依赖问题

Bootstrap的invalid-tooltip需要父容器设置position: relative才能正常显示,如果你的col-md-12容器没有这个样式,提示会被隐藏。可以换成无需额外定位的invalid-feedback:

@error('item_description')
<span class="invalid-feedback d-block">
    <strong>{{ $message }}</strong>
</span>
@enderror

原因三:旧数据保留逻辑异常

Laravel的validate方法和表单请求类会自动在验证失败时重定向并携带旧数据,但如果是手动处理验证逻辑,要确保调用redirect()->back()->withInput()->withErrors($validator)返回,你的Blade代码中old('item_description')的写法是正确的。

原因四:字段名称不匹配

确认后端验证规则的字段名和前端文本域的name属性完全一致,你的代码中都是item_description,这部分没问题。

完成上述配置后,提交少于350字的描述内容,即可触发错误提示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 22:35:17