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

Laravel 8中如何将密码复杂度验证错误合并为单条自定义提示?

Laravel 8 密码验证错误消息合并问题

我正在基于Laravel 8开发一个博客应用,使用Laravel 8提供的标准流程确保密码符合复杂度要求,当前的验证器代码如下:

protected function validator(array $data)
{
    $rules = [
        'first_name' => ['required', 'string', 'max:255'],
        'last_name' => ['required', 'string', 'max:255'],
        'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
        'password' => ['required', 'string', 'confirmed', Password::min(6)->mixedCase()->letters()->numbers()->symbols()],
        'password_confirmation' => ['required', 'same:password'],
        'accept' => ['accepted'],
    ];

    $messages = [
        'first_name.required' => '“名字”字段为必填项',
        'last_name.required' => '“姓氏”字段为必填项',
        'email.required' => '请提供有效的邮箱地址',
        'email.email' => '你提供的邮箱地址无效',
        'email.unique' => '你提供的邮箱地址已被使用',
        'password.required' => '请输入密码',
        'password.mixedcase' => '密码需包含大小写字母、至少一个数字和一个符号',
        'password.letters' => '密码需包含大小写字母、至少一个数字和一个符号',
        'password.numbers' => '密码需包含大小写字母、至少一个数字和一个符号',
        'password.symbol' => '密码需包含大小写字母、至少一个数字和一个符号',
        'accept.required' => '你必须同意服务条款'
    ];
    
    return Validator::make($data, $rules, $messages);
}

我的需求是:当任意密码复杂度条件未满足时,仅显示一条验证错误消息“密码需包含大小写字母、至少一个数字和一个符号”。我希望将所有复杂度规则的错误合并为一条消息,而非重复定义每个规则的相同消息。

我尝试使用类似'password.isComplex' => '密码需包含大小写字母、至少一个数字和一个符号'的写法,但未生效,反而显示每条规则的默认错误消息。

更新:使用以下写法也无效:

'password.required' => '请输入密码',
'password.*' => '密码需包含大小写字母、至少一个数字和一个符号'

请问我的操作存在什么错误?


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 10:29:51