首页 > 解决方案 > 我无法在 laravel 中的多个路由组上访问相同的路由

问题描述

我是 laravel 的新手,我有一些路由组和中间件。我的问题是,当我在不同的路由组上使用相同的路由时,它只会选择底部路由组中的路由。

以下是我的代码

管理中间件:

 if(Sentinel::check() && Sentinel::getUser()->roles()->first()->slug == 'admin')
    return $next($request);
 else
    return redirect()->back();

教师中间件:

if(Sentinel::check() && Sentinel::getUser()->roles()->first()->slug == 'teacher')
   return $next($request);
else
   return redirect()->back();

wep.php:

Route::group(['middleware' => ['teachers']], function () {
   Route::get('/adminportal', ['as' => 'getAdminPortal', 'uses' => 'AdminPortalController@getAdminPortal']);
});

Route::group(['middleware' => ['admin']], function () {
   Route::get('/adminportal', ['as' => 'getAdminPortal', 'uses' => 'AdminPortalController@getAdminPortal']);
   Route::get('/admin/dashboard', ['as' => 'getDashboard', 'uses' => 'DashboardController@Dashboard']);
});

所以在上面的代码中,我真正想要实现的是,当用户具有admin角色时,他应该能够访问两者,/adminportal and /admin/dashboard但在这种情况下,具有角色admin的用户只能访问/admin/dashboard而不能访问/adminportal路由。

请问我该如何解决这个问题?

标签: laravel-5.4

解决方案


推荐阅读