是否可以将具有不同用户角色的用户重定向到laravel 5.1中的其他页面?
我已经查看了Auth中间件和Auth控制器,但没有发现处理登录请求本身的任何内容。
我在Laravel redirect back to original destination after login找到了有关登录重定向的内容,但我不确定在何处放置建议的代码段。
有人可以帮助我吗
答案 0 :(得分: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);
}
}