📅  最后修改于: 2023-12-03 15:02:39.138000             🧑  作者: Mango
在 Laravel 中,表单验证器是一个非常常用的功能,它可以自定义各种验证规则,自定义验证错误消息是一个更好的选择。
本示例将向您演示如何在 Laravel 中自定义验证消息,以及如何在验证器中使用自定义消息。
要自定义验证消息,您需要在 resources/lang
目录中创建一个语言文件。这个文件应该命名为 validation.php
。在这个文件中,您可以为每个验证规则定义一个错误消息,如下所示:
// resources/lang/validation.php
return [
'required' => 'The :attribute field is required.',
'email' => 'The :attribute must be a valid email address.',
'unique' => 'The :attribute has already been taken.',
];
上面的代码中,默认已经定义了一些错误消息,如 required
、email
和 unique
等。
在这样的语言文件中,可以根据自己的需求来定义和覆盖这些默认的验证规则的错误消息。
当使用 Laravel 表单验证器时,您可以指定自定义验证消息。您可以在路由文件中使用 Validator::make
方法来创建一个新的验证器实例,如下所示:
// routes/web.php
use Illuminate\Support\Facades\Validator;
use Illuminate\Http\Request;
Route::post('/register', function (Request $request) {
$validator = Validator::make($request->all(), [
'name' => 'required|string|min:6',
'email' => 'required|string|email|max:255|unique:users',
'password' => 'required|string|min:8|confirmed',
], [
'required' => 'The :attribute field is required.',
'string' => 'The :attribute field must be a string.',
'min' => 'The :attribute field must be at least :min characters.',
'email' => 'The :attribute must be a valid email address.',
'unique' => 'The :attribute has already been taken.',
'confirmed' => 'The password confirmation does not match.',
]);
if ($validator->fails()) {
return redirect('/register')
->withErrors($validator)
->withInput();
}
// Register a new user...
});
在这个示例中,我们使用了一个 Validator::make
方法来创建一个新的验证器实例。在这个方法中,第二个参数是验证规则,第三个参数是自定义错误消息。
在 Validator::make
方法中定义自定义消息时,可以使用 :attribute
来代表字段名称,使用 :min
、:max
、:value
等来代表验证规则中定义的值。
最后,如果验证器失败,我们将重定向回注册页面,并显示相关的验证错误消息。withErrors
方法用于传递错误消息,withInput
方法用于将原始表单值带回表单,以便用户更容易地更正错误。
本示例演示了如何在 Laravel 中自定义验证消息,以及如何在验证器中使用自定义消息。在实际开发中,您也可以根据自己的需求进行更灵活的定制。