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

如何在Laravel中使用Rule::in验证规则时添加自定义错误消息

问题原因

自定义错误提示不生效的核心原因是验证规则对应的消息键写法错误:使用Rule类定义的验证规则,配置自定义消息时直接使用规则的通用名称即可,不需要完整书写Rule::in(xxx)内容。本次场景中Rule::in()对应的通用规则名称为in,因此消息键应该写为agency-name.in。

修复后完整代码
$agencies = Session::get('config.agency-names');
$agency_names = array();
for ($x = 0; $x < count($agencies['Agencies']); $x++) {
    $name = $agencies['Agencies'][$x]["AgencyName"];
    array_push($agency_names, $name);
    array_push($agency_names, '');
}

$request->validate([
    'referral'    => 'required',
    'agency-name' => ['required_if:referral,no', Rule::in($agency_names)],
    'password'    => 'required|min:6|regex:/[A-Z]/|regex:/[a-z]/|regex:/[0-9]/|confirmed'
], [
    // 修正后的机构名称自定义错误消息
    'agency-name.in' => '请选择合法的机构名称',
    // 原有密码自定义消息
    'password.confirmed' => '确认密码不匹配,请重试',
    'password.regex'     => '密码不符合要求,请重试',
    'password.min'       => '密码不符合要求,请重试',
]);
补充说明

后续使用其他Rule类验证规则(如Rule::exists()、Rule::unique())时,自定义消息逻辑同理,统一使用字段名.规则名格式即可,例如user.email.unique、order.id.exists。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 12:15:03