Laravel5.5 標準のAuth機能のリダイレクト設定の共通化に関して
Laravel5.5でmake:authコマンドで認証機能を実装し、
ユーザー登録後・ログイン後・パスワードリセット後のリダイレクト先を変更する場合、
各コントローラーの「$redirectTo」にリダイレクト先を指定すると思うのですが、
このリダイレクト先を、ルーティング時につけたnameで指定するか、
const.php等で定義した定数で、一元管理したいのですが、上手くいきません。
■試した方法
LoginController・RegisterControllerを下記に変更。
※パスワードリセット後に関しては省略
PHP
1class LoginController extends Controller 2{ 3 use AuthenticatesUsers; 4 5 protected $redirectTo; 6 7 public function __construct() 8 { 9 $redirectTo = route('admin.home'); 10 $this->middleware('guest')->except('logout'); 11 } 12}
PHP
1class RegisterController extends Controller 2{ 3 use RegistersUsers; 4 5 protected $redirectTo; 6 7 public function __construct() 8 { 9 $redirectTo = route('admin.home'); 10 $this->middleware('guest'); 11 }
上記、試した方法では、ログイン後のリダイレクトは動作しましたが、
ユーザー登録後・パスワードリセット後のリダイレクト時に下記エラーで止まってしまいました。
Object of class Illuminate\Routing\Redirector could not be converted to string
vendor以下のファイルを変更せずに、
リダイレクト先を共通管理する方法がございましたら、
教えていただけますと幸いです。
何卒、よろしくお願いいたします。
■追記
h_3478さん回答ありがとうございます。
頂いた質問への回答を追記いたします。
routeファイルは下記のような感じで、認証用のmiddlewareもコントローラーではなくルーティング時に行なっています。
PHP
1/* 2|-------------------------------------------------------------------------- 3| 管理画面用ルーティング(認証が不要なページ) 4|-------------------------------------------------------------------------- 5*/ 6Route::prefix('admin')->group(function () { 7 Auth::routes(); 8}); 9 10/* 11|-------------------------------------------------------------------------- 12| 管理画面用ルーティング(認証が必要なページ) 13|-------------------------------------------------------------------------- 14*/ 15Route::middleware('auth')->prefix('admin')->group(function () { 16 Route::get('/', function () { 17 return view('admin.home'); 18 })->name('admin.home'); 19});
また、configはconfig:cacheも試してみましたが、結果は変わりませんでした。
■追記
h_3478さん回答ありがとうございます。
adminやhogeと表記が統一されていなかったので、修正いたしました。
また、コントローラー部分に関してもわかりづらかったので、追加いたしました。
回答1件
あなたの回答
tips
プレビュー