首页 > 解决方案 > Laravel 中的 web.php、LoginController.php 和 AdminMiddleWare.php 之间的执行顺序(之后)是什么

问题描述

如果我使用用户类型“admin”登录,那么代码序列将如何执行?Admin Middleware 在哪些状态下工作或 Login Controller 或 Routes。Login Controller 的 redirectTo() 函数将 'dashboard' 或 'home' 返回到哪里。请详细帮助我

web.php 或路由

Auth::routes();
Route::get('/home', 'HomeController@index')->name('home');

Route::group(['middleware' => ['auth','admin']],function(){
    Route::get('/dashboard',function(){
        return view('admin.dashboard');
    });
});

登录控制器.php

protected function redirectTo(){
    if(Auth::user()->usertype == 'admin'){
        return 'dashboard';
    }
    else{
        return 'home';
    }
}

AdminMiddleware.php

   public function handle($request, Closure $next)
    {
        if(Auth::user()->usertype == 'admin'){
            return $next($request);
        }
        else{
            return redirect('/home');
        }
        
    }

标签: phplaravel

解决方案


用户登录后:(如果是usertype == admin

1- redirectTo()in的功能LoginController.php将被执行。

2-登录的用户将由AdminMiddleware.

3- 用户将admin.dashboard根据AdminMiddleware.

用户登录后:(如果是usertype != admin

1- redirectTo()in的功能LoginController.php将被执行。

2- 用户将home根据LoginController.php.


推荐阅读