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

Laravel自定义验证消息如何动态引用规则参数避免重复修改

Laravel 验证消息动态引用规则参数方案

Laravel 验证组件原生支持占位符替换能力,不需要手动硬编码规则中的参数值,直接在自定义消息中使用对应占位符即可,后续修改规则参数时验证消息会自动同步取值,无需重复维护两处内容。

常用规则对应占位符

带参数的验证规则都有内置的占位符可以直接调用,常见的对应关系如下:

  • digits:值 规则:使用 :digits 占位符获取规则中定义的位数
  • min:值 规则:使用 :min 占位符获取规则中定义的最小阈值
  • max:值 规则:使用 :max 占位符获取规则中定义的最大阈值
  • size:值 规则:使用 :size 占位符获取规则中定义的固定长度/大小
  • between:min,max 规则:可同时使用 :min、:max 两个占位符获取上下限
  • in:a,b,c 规则:使用 :values 占位符获取允许的取值列表

改造后的代码示例

你只需要把原来消息里硬编码的数值替换成对应占位符即可,修改后的messages()方法如下:

public function messages()
{
    return [
        'cuit.required' => 'Campo obligatorio',
        'cuit.numeric' => 'El CUIT solo puede ser númerico',
        'cuit.digits' => 'El CUIT debe tener :digits dígitos',

        'razon_social.required' => 'Campo obligatorio',
        'razon_social.alpha' => 'La razón social solo puede ser texto',
        'razon_social.max' => 'La razón social puede tener hasta :max caracteres',
        'razon_social.min' => 'La razón social debe tener al menos :min caracteres',

        'fantasia.required' => 'Campo obligatorio',
        'fantasia.string' => 'El nombre de fantasía solo puede ser texto',
        'fantasia.max' => 'Este campo puede tener un maximo de :max caracteres',
        'fantasia.min' => 'Este campo debe tener al menos :min caracteres',
    ];
}

改造完成后,比如后续你把razon_social的规则从max:64调整为max:128,对应验证消息会自动显示128字符,不需要额外修改消息配置。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 11:45:25