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

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

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

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

Q&A

0回答

1267閲覧

Laravel8.x : RouteServiceProvider.phpでリダイレクト先を指定してもログイン後 "/" に遷移してしまう。。

DeepRoastBeans

総合スコア79

Laravel

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

0グッド

0クリップ

投稿2020/12/26 12:25

やりたい事: ログイン後に、管理者権限(role_id==2)の時は、管理者画面トップ('/admin')にリダイレクトさせ、一般権限の時は、一般権限トップ('/')にリダイレクトさせたい。

  1. 一般権限のトップを('/')にしようとすると、RouteServiceProviderでログイン後のリダイレクト先URLを指定していても、'/'に遷移してしまう。
  2. ('/')を'middleware' => 'auth'のルーティングから外し、一般権限のトップを('/home')などにすると、ログイン後にRouteServiceProviderで指定したパスに遷移する。

app/Providers/RouteServiceProvider.php

php

1public const HOME = '/auth';

routes/web.php

php

1Route::group(['middleware' => 'auth' ], function(){ 2 Route::get('/auth', [AdminController::class, 'auth']); 3 Route::get('/', [GeneralController::class, 'index']); 4}); 5Route::group(['middleware' => ['auth','IsAdmin'] ], function(){ 6 Route::get('/admin', [AdminController::class, 'admin']); 7});

app/Http/Controller/AdminController.php

php

1 public function auth(){ 2 event(new Logined()); 3 $this->middleware('IsAdmin'); 4 return redirect('/admin'); 5 } 6 public function admin(){ 7 return view('admin.index') 8 }

app/Http/Middleware/

php

1public function handle(Request $request, Closure $next) 2 { 3 $user = Auth::user(); 4 if(!$user->isAdmin()){ 5 return redirect()->intended('/'); 6 } 7 return $next($request); 8 }

app/Models/User

php

1public function isAdmin(){ 2 if($this->role_id == 1){ 3 return true; 4 } 5 return false; 6 }

ルーティングで'middleware' => 'auth'の中に('/')を書くと、それが優先されるのでしょうか?
ログイン後に('/')ではなく、指定したURLに遷移する書き方を教えていただきたいです。

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問