如何修改Laravel Password类校验失败时的默认英文错误提示为德语
合理解决方法
你看到PHPStorm的警告是因为你修改的是vendor目录下的Laravel框架源码,这类第三方依赖的代码绝对不能直接修改,后续执行composer update更新依赖时,你的改动会被直接覆盖,完全无法持久化。
你可以用以下两种合规方案实现德语错误提示:
方案1:仅为当前密码校验自定义提示
在调用验证方法时,传入自定义的消息数组即可,示例代码如下:
$validated = $request->validate([ 'password' => ['required', 'confirmed', Password::min(12) ->mixedCase() ->letters() ->numbers() ->symbols() ->uncompromised() ], ], [ 'password.min' => 'Das :attribute muss mindestens :min Zeichen lang sein.', 'password.mixed_case' => 'Das :attribute muss mindestens einen Groß- und einen Kleinbuchstaben enthalten.', 'password.letters' => 'Das :attribute muss mindestens einen Buchstaben enthalten.', 'password.symbols' => 'Das :attribute muss mindestens ein Sonderzeichen enthalten.', 'password.numbers' => 'Das :attribute muss mindestens eine Zahl enthalten.', 'password.uncompromised' => 'Das angegebene :attribute ist in einem Datenleck aufgetaucht. Bitte wählen Sie ein anderes :attribute.', ]);
如果你用的是表单请求类(Form Request)做验证,把上面的消息数组放到类的messages()方法中返回即可。
方案2:全局配置德语验证提示
如果你的项目全站都需要用德语做提示,直接配置全局语言包即可:
- 在
resources/lang目录下新建de文件夹,新增validation.php语言文件 - 把Laravel验证规则对应的德语翻译全部写入该文件,上述密码相关规则的翻译和方案1提供的内容一致,你也可以直接复用现成的Laravel德语语言包翻译内容
- 修改
config/app.php配置文件中的locale参数值为de,后续所有框架输出的验证提示默认都会使用德语
内容的提问来源于stack exchange,提问作者astudent
相关产品推荐
相关产品推荐

