首先编写一个最简单的验证,写在控制器里面
$validatedData = $request->validate([
'title' => 'required|unique:posts|max:255',
'body' => 'required',
]);
所需的验证规则传递至 validate 方法中。如果验证失败,会自动生成一个对应的响应。如果验证通过,那我们的控制器会继续正常运行
显示验证错误信息
如果传入的请求参数未通过给定的验证?Laravel 会自动将用户重定向到之前的位置。另外,所有的验证错误信息会自动存储到 闪存
session 中
错误信息可以从errors中去取出来,发生的错误信息总是存储到errors中的
@if ($errors->any())
<div class="alert alert-danger">
<div>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</div>
</div>
@endif
也使用 @error Blade 指令方便地检查给定的属性是否存在验证错误信息。在 @error 指令中,可以输出 $message 变量以显示错误信息
<label for="title">Post Title</label>
<input id="title" type="text" class="@error('title') is-invalid @enderror">
@error('title')
<div class="alert alert-danger">{{ $message }}</div>
@enderror
验证表单请求
面对更复杂的情况,您可以创建一个「表单请求」来应对更复杂的验证逻辑。表单请求是一个包含了验证逻辑的自定义请求类。
就是说,一般验证都是写在表单请求类里面的,除非它很少,就可以写在控制器里面
创建一个表单请求类
php artisan make:request UserRequest
该命令生成的类将被置于 app/Http/Requests 目录中。如果这个目录不存在,在您运行 make:request
命令后将会创建这个目录
验证规则都写到到 rules 方法中
public function rules()
{
return [
'name' => 'required|min:4|max:32',
'email' => 'required|email'
];
}
自定义的错误消息写到message方法中
/**
* 获取已定义验证规则的错误消息
*
* @return array
*/
public function messages()
{
return [
'name.required' => '用户名不得为空',
'name.min' => '用户名不得小于四位',
'name.max' => '用户名不得大于32位',
'email.required' => '邮箱必须填写',
'email.email' => '请填写正确的邮箱格式',
];
}
验证规则是如何运行的呢?就是在控制器方法中类型提示传入的请求。在调用控制器方法之前验证传入的表单请求,这意味着不需要在控制器中写任何验证逻辑
public function infoUpdate(UserRequest $request)
{}
这个UserRequest 就是定义的验证类,他继承了FormRequest,然后FormRequest又继承了Request,所以,可以使用验证
Laravel表单验证与处理

这篇博客介绍了如何在Laravel框架中进行表单验证,包括在控制器中编写简单的验证逻辑,利用`validate`方法自动处理错误响应。当验证失败时,Laravel会自动重定向并存储错误信息在session中。若验证通过,控制器将继续执行。同时,文章讲解了如何创建自定义的表单请求类,将验证规则和错误消息定制化,并在控制器中通过类型提示调用此类进行验证。最后,博客提到了如何展示验证错误信息,使用`@error` Blade指令以及遍历`$errors`对象来显示错误列表。
526

被折叠的 条评论
为什么被折叠?



