代码之家  ›  专栏  ›  技术社区  ›  John

如何在Laravel5.6中更新当前的日志用户数据[[副本]

  •  0
  • John  · 技术社区  · 6 年前

    Argument 1 passed to App\Http\Controllers\Controller::validate() must be an instance 
    of Illuminate\Http\Request, array given, called in 
    app/Http/Controllers/Admin/Auth/AuthController.php on line 72 and defined
    

    功能:

    protected function loginValidation($request)
        {
            $rules = array(
              'fname' => 'required|max:255',
              'lname'  => 'required|max:255',
              'email'      => 'required|email|max:255|unique:users',
              'password'   => 'required|min:6|confirmed',
        );
            $this->validate( $request , $rules);
        }
      protected function getLoginCredentials(Request $request)
      {
        $validator = $this->loginValidation(Request::all());
    
        var_dump($validator); die();
    
        if($validator->passes())
        {
        return[
        'email'    => Request::input('email'),
        'password' => Request::input('password'),
        'type'     => 1  
        ];
    
        return true;
        }else{
            return redirect()->back()->withErrors();
        }
      }  
    

    public function validate($request, $rules)
        {
            $rules = array(
              'fname' => 'required|max:255',
              'lname'  => 'required|max:255',
              'email'      => 'required|email|max:255|unique:users',
              'password'   => 'required|min:6|confirmed',
        );
            $this->validate( $request , $rules);
        }
    
    
    
    protected function getLoginCredentials(Request $request)
      {
        $validator = $this->validate($request, $rules);
    
        if($validator->passes())
        {
        return[
        'email'    => Request::input('email'),
        'password' => Request::input('password'),
        'type'     => 1  
        ];
    
        return true;
        }else{
            return redirect()->back()->withErrors();
        }
      }  
    

    错误:

    Declaration of App\Http\Controllers\Admin\Auth\AuthController::validate() should be compatible with App\Http\Controllers\Controller::validate(Illuminate\Http\Request $request, array $rules, array $messages = Array, array $customAttributes = Array)
    
    0 回复  |  直到 9 年前
        1
  •  4
  •   oseintow    9 年前

    更改为

     $validator = $this->loginValidation($request);
    

    这样就可以将一个请求实例传递给validate函数

    您正在向validate函数的第一个参数传递一个数组,我猜它应该是Request的一个实例

    $this->validate( $request , $rules);
    

    更新

    protected function loginValidation($request)
    {
        $rules = array(
          'fname' => 'required|max:255',
          'lname'  => 'required|max:255',
          'email'      => 'required|email|max:255|unique:users',
          'password'   => 'required|min:6|confirmed',
    );
        $this->validate( $request , $rules);
    }
    
    protected function getLoginCredentials(Request $request)
    {
       $validator = $this->loginValidation($request);
    
       var_dump($validator); die();
    
       if($validator->passes())
       {
         return[
          'email'    => Request::input('email'),
          'password' => Request::input('password'),
          'type'     => 1  
      ];
    
          return true;
       }else{
          return redirect()->back()->withErrors();
       }
    }