📜  laravel 验证类型 - PHP (1)

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

Laravel 验证类型

在 Laravel 中,数据验证是非常重要的,因为无效的数据可能会导致系统崩溃或者安全问题。Laravel 提供了多种验证类型,可以根据实际情况选择使用。

表单请求验证

表单请求验证是一种简单的数据验证方式,可以在控制器中直接使用。

public function store(Request $request)
{
    $validatedData = $request->validate([
        'title' => 'required|unique:posts|max:255',
        'body' => 'required',
    ]);

    // 数据通过验证后的操作
}

在这个例子中,我们使用了 validate 方法来验证输入的数据。如果验证失败,Laravel 会自动返回 422 状态码并把错误信息包含在响应中。

手动验证

有时候我们需要在控制器中手动进行数据验证,这时可以使用 Validator 类。

use Illuminate\Support\Facades\Validator;

public function store(Request $request)
{
    $validator = Validator::make($request->all(), [
        'title' => 'required|unique:posts|max:255',
        'body' => 'required',
    ]);

    if ($validator->fails()) {
        return redirect('post/create')
                    ->withErrors($validator)
                    ->withInput();
    }

    // 数据通过验证后的操作
}

在这个例子中,我们使用了 Validator 类来手动验证输入的数据。如果验证失败,我们可以使用 withErrors 方法把错误信息传递给视图,使用 withInput 方法把用户提交的数据保留下来。

自定义验证规则

在 Laravel 中,我们可以轻松地自定义验证规则。

use Illuminate\Support\Facades\Validator;

Validator::extend('foo', function ($attribute, $value, $parameters, $validator) {
    return $value == 'foo';
});

在这个例子中,我们自定义了一个 foo 验证规则。在控制器中就可以这样使用了:

$validator = Validator::make($request->all(), [
    'title' => 'required|foo',
    'body' => 'required',
]);
验证数组

在表单处理中,常常需要验证数组,Laravel 提供了 * 通配符来实现这个功能。

$validator = Validator::make($request->all(), [
    'title.*' => 'required',
    'content.*.body' => 'required',
]);

以上就是 Laravel 中的数据验证类型,选择合适的验证类型可以更好地保证程序的正确运行和安全性。