📅  最后修改于: 2023-12-03 15:32:37.257000             🧑  作者: Mango
Laravel 提供了一系列便捷的验证器来验证 HTTP 请求中的数据。它可以用于验证表单输入、路由参数和任何请求类型。
Laravel 验证器允许您轻松验证各种类型的表单数据,包括字符串、数字、文件、图像和其他数据。同时您还可以自定义验证规则以满足您的需求。本文将为您介绍 Laravel 验证器的使用方法。
Laravel 安装验证器非常方便,只需要运行以下命令即可:
composer require illuminate/validation
使用 Laravel 验证器非常简单,在您的控制器中调用 validate
函数,并将要验证的字段和规则传递给它。例如:
public function store(Request $request)
{
$validatedData = $request->validate([
'name' => 'required|string|max:255',
'email' => 'required|string|email|unique:users,email',
'password' => 'required|string|min:8|confirmed',
]);
// 还可以在此处保存数据到数据库等。
}
在上面的示例中,我们声明了三个字段 name
、email
和 password
,并分别指定了它们需要的验证规则。
这里需要注意的一点是,如果验证失败,Laravel 会自动将错误信息返回到界面上。如果您想要手动操作这些错误信息,可以调用 $validator->errors()
函数。
如果您需要自定义验证规则,可以使用 Validator::extend
函数来扩展 Laravel 验证器。例如:
use Illuminate\Support\Facades\Validator;
Validator::extend('foo', function ($attribute, $value, $parameters, $validator) {
return $value == 'foo';
});
$request->validate([
'name' => 'foo',
]);
在上面的示例中,我们使用 Validator::extend
函数自定义了 foo
验证规则。这个规则检查 name
字段的值是否等于 'foo'
。
当验证失败时,Laravel 会自动将错误信息返回到界面上,这些错误信息可能会让用户感到困惑。因此,您可以自己定义错误信息,以便更好地向用户解释错误。
$messages = [
'required' => 'The :attribute field is required.',
'email' => 'The :attribute must be a valid email address.',
'unique' => 'The :attribute has already been taken.',
'confirmed' => 'The :attribute confirmation does not match.',
];
$request->validate([
'name' => 'required|string|max:255',
'email' => 'required|string|email|unique:users,email',
'password' => 'required|string|min:8|confirmed',
], $messages);
在上面的示例中,我们使用 $messages
数组自定义了一些错误信息。例如,当 name
字段验证失败时,Laravel 将返回 'The name field is required.'
。
本文只介绍了 Laravel 验证器的基础用法,如果您想了解更多关于它的信息,请参阅 官方文档。