laravel学习笔记--表单验证
首先编写一个最简单的验证,写在控制器里面
$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,所以,可以使用验证
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号