Laravel-登录到特定页面后重定向用户

时间:2018-10-24 13:59:26

标签: php laravel laravel-5 laravel-5.6

我想在用户首次登录时将其重定向到edit.blade页面。为此,我编写了此代码,但是它不起作用,我也不知道问题出在哪里。有人可以帮我吗?

这是我现在拥有的代码:

// This section is the only change
if ($this->guard()->validate($this->credentials($request))) {
    $user = $this->guard()->getLastAttempted();
    // Make sure the user is active
    if ($user->verified && $this->attemptLogin($request)) {
        if ($user->first_time_login == true || $user->first_time_login == 1) {
            $this->redirectTo = '/users/edit';
            $user->first_time_login = false;
            $user->save();
        }
        return $this->sendLoginResponse($request);
    }
}

除此行外,所有内容均有效:

if ($user->first_time_login == true || $user->first_time_login == 1) {
    $this->redirectTo = '/users/edit';
}

2 个答案:

答案 0 :(得分:0)

您可以使用this.renderer.image( url, point.plotX - (imgWidth / 5), point.plotY + this.plotTop - imgHeight, imgWidth, imgHeight ).attr({ zIndex: 3 }).add(); 属性或redirectTo方法执行此操作:

redirectTo属性: docs

  

如果重定向路径需要自定义生成逻辑,则可以定义一个   redirectTo方法而不是redirectTo属性:

authenticated

已认证的方法:

protected function redirectTo()
{
    $user = Auth::user();

    if($user->first_time_login){
        $user->first_time_login = false;
        $user->save();

        return '/users/edit';
    }else{
        return '/home';
    }
}

答案 1 :(得分:0)

我发现了问题,我必须在auth函数的底部添加return redirect()->to('/users/edit');,如果用户尚未导航到其他已验证的路由,则$ this-> redirrectTo是默认值。

我的代码现在看起来像这样:

if ($user->first_time_login == true || $user->first_time_login == 1) {
                $this->redirectTo = '/users/edit';
                $user->first_time_login = false;
                $user->save();
                return redirect()->to('/users/edit');
            }