3

使用像“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()

4

1 回答 1

2

根据原始拉取请求中的此评论,您不能在代码中执行此操作,并且必须使用 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等软件包可以为您完成所有这些翻译。

于 2021-08-04T21:20:06.623 回答