laravel 8多个用户使用auth命令重定向到不同的页面



我有4种类型的用户是'管理员','员工','讲师','学生'。我已经做了,当用户登录,它将重定向到仪表板,我想使其他3个用户预订页面。我相信用一个简单的if-else语句就可以做到。但是当尝试这样做时,它会显示一个错误。

这里是我的AdminMiddleware.php:

<?php
namespace AppHttpMiddleware;
use Closure;
use IlluminateHttpRequest;
use IlluminateSupportFacadesAuth;
class AdminMiddleware
{
/**
* Handle an incoming request.
*
* @param  IlluminateHttpRequest  $request
* @param  Closure  $next
* @return mixed
*/
public function handle(Request $request, Closure $next)
{
if(Auth::user()->usertype == 'admin')
{
return $next($request);
}
else
{
return redirect('/booking')->with('status','you are not allowed to enter uitm dashboard');
}
}
}

在我的logincontroller。php中,我这样做:

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

web.php:

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

路由末尾的->name(),以防重定向需要名称。第一行,如果还没有的话。这将是教职员工、讲师和学生(管理员也可以访问)的路线。

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

最新更新