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