Php Laravel:以不同的方式重定向不同的用户角色

Php Laravel:以不同的方式重定向不同的用户角色,php,laravel,redirect,laravel-5,Php,Laravel,Redirect,Laravel 5,在laravel 5.1中,是否可以将具有不同用户角色的用户重定向到不同的页面 我研究了Auth中间件和Auth控制器,但没有发现任何处理登录请求本身的东西 我在这里找到了一些关于登录重定向的信息,但我不确定建议的代码片段放在哪里 有人能帮我一下吗你可以在RedirectIfAuthenticated中间件中更新 namespace App\Http\Middleware; use Closure; use Illuminate\Contracts\Auth\Guard; class Red

在laravel 5.1中,是否可以将具有不同用户角色的用户重定向到不同的页面

我研究了Auth中间件和Auth控制器,但没有发现任何处理登录请求本身的东西

我在这里找到了一些关于登录重定向的信息,但我不确定建议的代码片段放在哪里


有人能帮我一下吗

你可以在RedirectIfAuthenticated中间件中更新

namespace App\Http\Middleware;

use Closure;
use Illuminate\Contracts\Auth\Guard;

class RedirectIfAuthenticated
{
    /**
     * The Guard implementation.
     *
     * @var Guard
     */
    protected $auth;

    /**
     * Create a new filter instance.
     *
     * @param  Guard  $auth
     * @return void
     */
    public function __construct(Guard $auth)
    {
        $this->auth = $auth;
    }

    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if ($this->auth->check()) {

            $auth = Auth::user()->roles()->first();

            switch ($auth->role) {
                case 'admin':
                        return  redirect()->route('admin');    
                    break;
                case 'superadmin':
                        return  redirect()->route('superadmin'); 
                    break;
                case 'user':
                        return  redirect()->route('user');  
                    break;

                default:
                    # code...
                    return  redirect()->route('user');  
                    break;
            }   

         }

        return $next($request);
    }
}

您可以在RedirectIfAuthenticated中间件中进行更新

namespace App\Http\Middleware;

use Closure;
use Illuminate\Contracts\Auth\Guard;

class RedirectIfAuthenticated
{
    /**
     * The Guard implementation.
     *
     * @var Guard
     */
    protected $auth;

    /**
     * Create a new filter instance.
     *
     * @param  Guard  $auth
     * @return void
     */
    public function __construct(Guard $auth)
    {
        $this->auth = $auth;
    }

    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if ($this->auth->check()) {

            $auth = Auth::user()->roles()->first();

            switch ($auth->role) {
                case 'admin':
                        return  redirect()->route('admin');    
                    break;
                case 'superadmin':
                        return  redirect()->route('superadmin'); 
                    break;
                case 'user':
                        return  redirect()->route('user');  
                    break;

                default:
                    # code...
                    return  redirect()->route('user');  
                    break;
            }   

         }

        return $next($request);
    }
}

这将是一项重新创建/覆盖
AuthController
以不同方式处理登录的任务,或者编写一个新的中间件以根据新登录用户的角色将其重定向到相应页面。不过,这个问题有点过于宽泛。这将是一项重新创建/覆盖
AuthController
以不同方式处理登录的任务,或者编写一个新的中间件以根据新登录用户的角色将其重定向到相应的页面。不过,这个问题有点太宽泛了。真不敢相信我在米德尔瓦里漏掉了那个文件。真不敢相信我在中间件里漏掉了那个文件