登录laravel时返回类型错误


Returning type error on login laravel

我得到一个错误:

Type error: Argument 1 passed to App'Http'Controllers'Auth'AuthController::authenticated() must be an instance of App'Http'Controllers'Auth'Request, instance of Illuminate'Http'Request given, called in /var/www/vendor/laravel/framework/src/Illuminate/Foundation/Auth/AuthenticatesUsers.php on line 115

这是我的自定义authenticated()

protected function authenticated(Request $request, $user){
    $successmessage = 'Welcome back, '.Auth::user()->username.'!';
    $request->session()->flash('success', $successmessage);
    return redirect()->intended($this->redirectPath());
}

其返回上述错误。有什么帮助吗?

您需要使用来自'App'Http'Controllers'Auth'Request的请求更改您的方法声明如下:

protected function authenticated('App'Http'Controllers'Auth'Request $request, $user){
                                ^^ //here is a change
    $successmessage = 'Welcome back, '.Auth::user()->username.'!';
    $request->session()->flash('success', $successmessage);
    return redirect()->intended($this->redirectPath());
}

更改:

use App'Http'Requests;

use Request;

检查类Request是否存在于App''Http''Controllers''Auth文件夹中。如果存在,只需在命名空间后面包含请求路径:

use App'Http'Controllers'Auth'Request;

您可以这样做。。

use Auth;
use Request;
protected function authenticated($user){ //Changed
    $successmessage = 'Welcome back, '.Auth::user()->username.'!';
    Request::session()->flash('success', $successmessage); //Changed
    return redirect()->intended($this->redirectPath());
}

我希望这会奏效。