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

use*_*496 0 php redirect laravel laravel-5

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

我查看了Auth中间件和Auth控制器,但没有发现任何处理登录请求本身的内容.

我在这里发现了一些关于登录重定向的事情Laravel在登录后重定向回到原始目的地,但我不确定在哪里放置建议的代码片段.

有人可以帮我吗

Par*_*ban 5

您可以在RedirectIfAuthenticated Middleware中进行更新

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);
    }
}
Run Code Online (Sandbox Code Playgroud)