📅  最后修改于: 2023-12-03 15:25:56.420000             🧑  作者: Mango
在 Laravel 中,我们可以很方便地在控制器中进行数据验证。在本文中,我们将介绍 Laravel 控制器中的验证。
Laravel 提供了多种验证方法,包括基本的输入验证、邮件验证、密码验证、授权验证等等。以下是一些常用的验证方法:
这些验证方法可以作为控制器方法的参数传入,例如:
public function store(Request $request)
{
$validatedData = $request->validate([
'name' => 'required|unique:users|max:255',
'email' => 'required|email|unique:users|max:255',
'password' => 'required|confirmed|min:6',
]);
// ...
}
除了使用参数验证,我们还可以使用手动验证。手动验证通常更灵活,并且可以更好地控制验证逻辑。手动验证可以通过调用 Validator
类的实例来完成:
use Illuminate\Support\Facades\Validator;
public function store(Request $request)
{
$validator = Validator::make($request->all(), [
'name' => 'required|unique:users|max:255',
'email' => 'required|email|unique:users|max:255',
'password' => 'required|confirmed|min:6',
]);
if ($validator->fails()) {
return redirect()->back()
->withErrors($validator)
->withInput();
}
// ...
}
在控制器中,我们还可以使用表单请求验证。表单请求验证会自动验证请求,如果失败则自动返回错误信息。使用表单请求验证的步骤如下:
Illuminate\Foundation\Http\FormRequest
,并定义需要验证的规则:namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class StoreBlogPost extends FormRequest
{
public function authorize()
{
return true;
}
public function rules()
{
return [
'title' => 'required|max:255',
'body' => 'required',
];
}
}
use App\Http\Requests\StoreBlogPost;
public function store(StoreBlogPost $request)
{
// ...
}
以上就是 Laravel 控制器中的验证方法。无论使用哪种验证方式,我们都需要保证数据的合法性,以提高程序的可靠性。