Как перенаправить на предыдущую страницу после входа в систему laravel 6 - PullRequest
1 голос
/ 22 января 2020

Я хочу перенаправить на предыдущую страницу после входа в систему Laravel 6. Я не знаю, что изменить в классе LoginController.

class LoginController extends Controller
{
    use AuthenticatesUsers;

    protected $redirectTo = RouteServiceProvider::HOME;

    public function __construct()
    {
        $this->middleware('guest')->except('logout');
    }

    public function showLoginForm()
    {
        $data = array(
            'title' => 'Signin',
            'description' => 'Login',
            'seo_keywords' => 'Signin'

        );

        return view('auth/login', $data);
    }
}

Ответы [ 2 ]

0 голосов
/ 22 января 2020

Если вы хотите внести некоторые изменения в ваш метод входа в LoginController, то вы должны внести некоторые изменения в свой контроллер входа в систему. см. код ниже

public function showLoginForm()
{
    $data = array(
    'title'=>'Signin',
    'description'=> 'Login',
    'seo_keywords'=> 'Signin'
   );

    session(['previous' => url()->previous()]);
    return view('auth.login');
}


protected function authenticated(Request $request, $user)
{
    return redirect(session('previous'));
}
0 голосов
/ 22 января 2020

Сначала вы должны сохранить предыдущий URL в сеансе, подобном этому

public function showLoginForm()
    {
       $data = array(
         'title'=>'Signin',
         'description'=> 'Login',
         'seo_keywords'=> 'Signin'
       );

        if (session('link')) {
            $myPath = session('link');
            $loginPath = url('/login');
            $previous = url()->previous();

            if ($previous = $loginPath) {
                session(['link' => $myPath]);
            } else {
                session(['link' => $previous]);
            }
        } else {
            session(['link' => url()->previous()]);
        }

        return view('auth/login',$data);
    }

, а затем после входа перенаправить на этот URL

protected function redirectTo()
    {
        if (session('link')) {
            return session('link');
        }

        return property_exists($this, 'redirectTo') ? $this->redirectTo : '/dashboard';
    }

Я думаю, что это решит вашу проблему .

...