Laravelでのログイン後に前のページにリダイレクトする方法


  1. リダイレクト先のURLをセッションに保存する方法:

    ログイン前にユーザーがアクセスしていたURLをセッションに保存し、ログイン後にそのURLにリダイレクトします。

    // ログイン前にセッションに保存
    session(['previous_url' => url()->previous()]);
    // ログイン後に保存されたURLにリダイレクト
    return redirect(session('previous_url'));
  2. リクエストにリファラー情報を含める方法:

    ログインフォームの送信時に、リファラー情報をリクエストに含めます。ログイン後にリファラー情報を取得し、そのURLにリダイレクトします。

    // ログインフォームのビュー
    <form action="/login" method="POST">
       @csrf
       <input type="hidden" name="referrer" value="{{ url()->previous() }}">
       <!-- その他の入力フィールド -->
       <button type="submit">ログイン</button>
    </form>
    // ログイン処理
    public function login(Request $request)
    {
       // ログイン処理...
       // リファラー情報を取得してリダイレクト
       return redirect($request->input('referrer'));
    }
  3. デフォルトのリダイレクト先を設定する方法:

    LaravelのAuthファサードを使用してログイン後のリダイレクト先をデフォルトで設定することもできます。

    // Authファサードを使用してリダイレクト先を設定
    protected function redirectTo()
    {
       return url()->previous();
    }

これらの方法のいずれかを選択して実装することで、Laravelでログイン後に前のページにリダイレクトすることができます。適切な方法を選択し、アプリケーションの要件に応じてカスタマイズしてください。