注册后立即登录用户 - laravel

时间:2018-04-24 06:04:56

标签: php laravel

我试图在注册后立即使用以下代码登录用户 我没有看到我的代码中有任何错误,我收到以下错误

  

方法[guard]不存在。

我还有导入使用

Illuminate\Contracts\Auth\Guard;

RegisterUser

public function register(Request $request)
{
    $validator = $this->validator($request->all());

    if ($validator->fails()) {
        $this->throwValidationException(
            $request, $validator
        );
    }

    // $this->create($request->all());
    $user = $this->create($request->all());

    UserVerification::generate($user);
    UserVerification::send($user, 'My Custom E-mail Subject');

    $this->guard()->login($user)->with('status', 'Registration successfully done.');

    return $this->registered($request, $user)
        ?: redirect($this->redirectPath());

}

2 个答案:

答案 0 :(得分:0)

控制器中没有名为guard的方法。使用login中的Auth方法 使用Auth::login($user);手动登录用户

public function register(Request $request)
{
    $validator = $this->validator($request->all());

    if ($validator->fails()) {
        $this->throwValidationException(
            $request, $validator
        );
    }

    // $this->create($request->all());
    $user = $this->create($request->all());

    UserVerification::generate($user);
    UserVerification::send($user, 'My Custom E-mail Subject');

    \Auth::login($user);

    return $this->registered($request, $user)
        ?: redirect($this->redirectPath());

}

如果您想使用自定义警卫,您可以指定警卫Auth::guard('guard-name')->login($user)

答案 1 :(得分:0)

注册后,如果您的自定义守卫不起作用,请在您的自定义注册控制器中将此功能放在下面,它将为您工作。注册后,您的自定义守卫将 100% 工作。

protected function guard(){return Auth::guard('dealer');}