[Laravel]ログイン後のリダイレクト先をマイページにしたい

概要

ログイン後にログインしたユーザのidを渡してマイページである \view\users\show にとびたい。

​開発環境

laravel6.6/PHP7.3


LoginController
デフォルトでは 

protected $redirectTo='\home'

と定義されています。
この部分を変えていきましょう。

use AuthenticatesUsers;

となっているので\Illuminate\Foundation\Auth\RedirectsUsers.phpをみてみましょう。

RedirectsUsers.php

use RedirectsUsers, ThrottlesLogins;

となっているのでさらにみてみると、、

RedirectsUsers.php


      if (method_exists($this, 'redirectTo')) {
          return $this->redirectTo();
      }


redirectPathの中にメソッドがあればそれをreturnする、とあるので、redirectTo methodを定義します。

LoginControllerに実装


protected function redirectTo() {
      if(! Auth::user()) {
           return '/';
      }
      return route('users.show', ['user' => Auth::id()]);
   }

今回は ' / ' をログインページに設定しているので、ログイン前のユーザーはそちらに飛ばされるようにしました。

まとめ

これでログイン後のリダイレクト先を変更し、かつidを渡すことができました。

役だったよという方は、ぜひスキをお待ちしています!noteに登録していなくてもあなたのスキは届きます!


*新米プログラマーが理解を深めるために書いているのでおかしな点などありましたらご指摘ください。

参考

未経験で勉強をはじめた時にかった1冊です!

こちらはさらに初心者向けです。

ブログ


サポートしていただけるとこれからも続ける励みになります! 書籍購入などに使わせていただく予定です! 何卒よろしくお願いします^^