📜  Laravel-验证(1)

📅  最后修改于: 2023-12-03 15:32:37.257000             🧑  作者: Mango

Laravel 验证

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',
    ]);

    // 还可以在此处保存数据到数据库等。
}

在上面的示例中,我们声明了三个字段 nameemailpassword,并分别指定了它们需要的验证规则。

这里需要注意的一点是,如果验证失败,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 验证器的基础用法,如果您想了解更多关于它的信息,请参阅 官方文档