📅  最后修改于: 2023-12-03 15:32:37.122000             🧑  作者: Mango
在 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 中的数据验证类型,选择合适的验证类型可以更好地保证程序的正确运行和安全性。