1. 手动验证
      1. 手动验证,和第一节快速验证是一样的,都是在控制器验证;
      2. 只不过,快速验证是全自动化的,无法局部控制更多的细节;

    //快速验证方式回顾
    $request->validate([
    ‘username’ => ‘required|min:2|max:10’,
    ‘password’ => ‘required|min:6’
    ]);

    //验证通过后得到提交的值
    dd($validateData);

    c. 创建手动验证,具体如下;
    //手动创建验证器
    $validator = Validator::make($request->post(), [
    ‘username’ => ‘required|min:2|max:10’,
    ‘password’ => ‘required|min:6’
    ]);

    //如果没有通过的话
    if($validator->fails()){
    // 跳转后,并将错误保存,还可以返回上一次填的信息
    return redirect(‘task/form’)->withErrors($validator)->withInput();
    }

    用户名:
    PS:快速验证,也支持old记忆上一次表单数据的功能
    d. 如果有多个表单,那可以设置$errors的多个错误包,有两种方法;
    //为表添加个名字一样的东西table1
    $validator = Validator::make($request->post(), [
    ‘username’ => ‘required|min:2|max:10’,
    ‘password’ => ‘required|min:6’
    ])->validateWithBag(‘table1’); //设置快速验证和手动验证

    if($validator->fails()){
    return redirect(‘task/form’)->withErrors($validator, ‘table1’)->withInput();
    }


    {{$errors->table1}}

    e. 我们也可以在验证完毕之前,通过附加回调添加更多自定义错误信息;
    //验证钩子
    $validator->after(function ($validator){
    $validator->errors()->add(‘info’, ‘字段info有误~’);
    });

    f. 关于$errors 对象,除了any()判断,all()获取全部,还有一些别的方法;

    {{$error->first(‘username’)}}

    1. <!-- 判断指定字段是否有错误信息 --><br /> {{$error->has('username')}}