使用自定义错误消息验证密码规则

问题描述 投票:0回答:2

使用“password.required”等标准符号,我可以为内置验证规则自定义错误消息。但是如何为

Illuminate\Validation\Rules\Password
规则自定义错误消息?

$rules = [
    'password' => [
        'required',
        'confirmed',
        Rules\Password::min(8)->letters()->mixedCase()->numbers()->symbols(),
    ],
];
$messages = [
    'password.required'  => 'يجب ادخال كلمة المرور',
    'password.confirmed' => 'كلمة المرور غير متطابقة',
];
$request->validate($rules, $messages);

如何自定义

min()
letters()
等消息?

php laravel localization laravel-validation laravel-localization
2个回答
7
投票

根据原始拉取请求中的此评论,您无法在代码中执行此操作,并且必须使用 JSON 本地化文件。

因此,检查验证类中的默认文本,然后在

resources/lang/ar.json
中为其添加翻译,如下所示:

{
  "The :attribute must contain at least one letter.": ":attribute يجب أن يحتوي على الأقل حرف واحد.",
  "The :attribute must contain at least one uppercase and one lowercase letter.": ":attribute يجب أن يحتوي على الأقل حرف كبير واحد وحرف صغير واحد.",
  "The :attribute must contain at least one number.": ":attribute يجب أن يحتوي على الأقل رقم واحد.",
  "The :attribute must contain at least one symbol.": ":attribute يجب أن يحتوي على الأقل رمز واحد."  
}

消息长度使用

resources/lang/ar/validation.php
中的标准长度:

<?php
return [
  "min" => [
    "string" => "يجب أن يكون طول نص حقل :attribute على الأقل :min حروفٍ/حرفًا.",
  ],
];

或者可以在上面的代码中声明它。

$messages = [
    'password.required'  => 'يجب ادخال كلمة المرور',
    'password.confirmed' => 'كلمة المرور غير متطابقة',
    'password.min' => 'whatever',
];

请注意,诸如 Laravel Lang 之类的软件包可以为您完成所有这些翻译。


0
投票

我在 laravel 11.x 中遇到了同样的问题。

我们可以通过以下方式自定义错误消息:

<Your_Code> 

public function messages()
{
   return [
          'password.required' => 'YOUR_CUSTOM_ERR_MSG',
          'password.confirmed' => 'YOUR_CUSTOM_ERR_MSG',
          'password.mixed' => 'YOUR_CUSTOM_ERR_MSG',
          'password.symbols' => 'YOUR_CUSTOM_ERR_MSG',
          'password.numbers' => 'YOUR_CUSTOM_ERR_MSG',
          'password.uncompromised' => 'YOUR_CUSTOM_ERR_MSG',
          'password.min' => 'YOUR_CUSTOM_ERR_MSG',
     ];
}

<Your_Code>
© www.soinside.com 2019 - 2024. All rights reserved.