laravel自定义表单验证规则

废话不多说,直接开始

  1. 生成规则对象
    php artisan make:rule Phonecase
    
  2. 打开app/Rules/Phonecase.php,passes方法里边写验证规则,验证通过返回true,否则返回false,message方法里写验证失败后返回的信息
    get();
        	if(count($user) == 0){
            	return false;
        	}else{
            	return true;
        	}
    	}
    
    	/**
     	* Get the validation error message.
     	*
     	* @return string
     	*/
    	public function message()
    	{
        	return '手机号尚未注册';
    	}
    }
    
    
  3. 在控制器里边这么用
    public function login(Request $request){
        //获取表单输入
        $phone = $request->input('phone');
        $password = $request->input('password');
    
        //创建验证器
        $validator = Validator::make($request->all(), [
            'phone' => ['required', new Phonecase],
        ]);
    
        if ($validator->fails()) {
            return redirect('/login')
                ->withErrors($validator)
                ->withInput();
        }
    
        //获取用户信息
        $user = User::where('phone_number',$phone)->first();
        //数据库中取的密码
        $pass = $user->password;
        $str = Hash::make($pass);
        if (Hash::check($password, $pass)) {
            Auth::login($user);
            return redirect('/');
        }else{
            return redirect('/login')
                ->with('message','密码错误')
                ->withInput();
        }
    }
    
  4. 前端显示页面
    @error('phone') {{ $message }} @enderror

你可能感兴趣的:(Laravel)