質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

リダイレクト

プログラムの入力元や出力先を通常とは別の場所に転送させることをリダイレクトと呼びます。

ログイン

ログインは、ユーザーがコンピューターシステムにアクセスするプロセスの事を呼びます。

Q&A

1回答

391閲覧

laravel8 fortifyでのログイン後のリダイレクトができない

shige_chan

総合スコア0

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

リダイレクト

プログラムの入力元や出力先を通常とは別の場所に転送させることをリダイレクトと呼びます。

ログイン

ログインは、ユーザーがコンピューターシステムにアクセスするプロセスの事を呼びます。

0グッド

0クリップ

投稿2024/03/19 07:45

実現したいこと

ログイン後、
RouteServiceProvider の public const HOME = 'ここ';
に記入したパスにリダイレクトさせたい。

発生している問題・分からないこと

ログインすると、ブラウザのアドレスバーに
http://localhost/RouteServiceProvider::HOME
と表示され、画面には、
404 NOT FOUND
と表示される。
ただし、アドレスバーの ’RouteServiceProvider::HOME’ の部分を 'my_page' に書き換えると、コントローラで指定したビューが正常に表示される。

該当のソースコード

RedirectIfAuthenticated

1<?php 2 3namespace App\Http\Middleware; 4 5use App\Providers\RouteServiceProvider; 6use Closure; 7use Illuminate\Http\Request; 8use Illuminate\Support\Facades\Auth; 9 10class RedirectIfAuthenticated 11{ 12 public function handle(Request $request, Closure $next, ...$guards) 13 { 14 $guards = empty($guards) ? [null] : $guards; 15 16 foreach ($guards as $guard) { 17 if (Auth::guard($guard)->check()) { 18 return redirect(RouteServiceProvider::HOME); 19 } 20 } 21 22 return $next($request); 23 } 24}

RouteServiceProvider

1<?php 2 3namespace App\Providers; 4 5use Illuminate\Cache\RateLimiting\Limit; 6use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider; 7use Illuminate\Http\Request; 8use Illuminate\Support\Facades\RateLimiter; 9use Illuminate\Support\Facades\Route; 10 11class RouteServiceProvider extends ServiceProvider 12{ 13 public const HOME = '/my_page'; 14 15 public function boot() 16 { 17 $this->configureRateLimiting(); 18 19 $this->routes(function () { 20 Route::prefix('api') 21 ->middleware('api') 22 ->namespace($this->namespace) 23 ->group(base_path('routes/api.php')); 24 25 Route::middleware('web') 26 ->namespace($this->namespace) 27 ->group(base_path('routes/web.php')); 28 }); 29 } 30 protected function configureRateLimiting() 31 { 32 RateLimiter::for('api', function (Request $request) { 33 return Limit::perMinute(60)->by(optional($request->user())->id ?: $request->ip()); 34 }); 35 } 36}

web.php

1<?php 2use Illuminate\Support\Facades\Route; 3use App\Http\Controllers\AuthController; 4 5Route::middleware('auth')->group(function () { 6 Route::get('/my_page', [AuthController::class, 'my_page']); 7});

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

GOOGLEで「fortify ログイン後のリダイレクト できない」や「http://localhost/RouteServiceProvider::HOME NOT FOUND」などで検索した。
しかし、有効な解決策は得られず。

補足

特になし

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

fortifyのconfigファイルの記述を確認してください。

config/fortify.php

1 'home' => RouteServiceProvider::HOME,

と記載されていれば正常にリダイレクトされるはずです。
おそらく定数の展開がされずに文字列として記述されているように思います。

投稿2024/05/28 07:52

ytsuyuzaki

総合スコア53

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問