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
相关产品推荐
相关产品推荐

