【发布时间】:2019-12-16 05:39:27
【问题描述】:
在我的 laravel 项目中,我创建了自己的角色并将它们添加到中间件,这样我就可以使用 auth.admin 或 auth.superadmin 来保护特定的路由。
我的超级管理员角色有一个 Route::Group,我的管理员角色有一个 Route::Group,标准身份验证检查有一个 Route:Group。
现在我有一个必须由超级管理员和管理员访问的特定路由。 当我将路由放在管理员组或超级管理员组中时,它可以工作。但是,当我尝试将它放在两者中或创建一个路由组时,我检查这两个角色时它不会。 然后我尝试像这样制作一个 Route::Group:
Route::group(['middleware' => ['auth','auth.admin', 'auth.superadmin']], function() {
Route::resource('user', 'UserController', ['except' => ['show']]);
});
我以为这会解决我的问题,但它没有。
如何创建一个只有管理员和超级管理员才能访问路由的路由组。
【问题讨论】:
-
创建一个新的中间件来检查用户是否有任何一个角色。
-
这应该可以。你遇到了什么错误??
-
@zahidhasanemon 我认为它会起作用,我没有收到任何错误,但我被重定向到 /home。我是否将路线放在它工作的角色组之一中,但如果我将它们组合起来它们都不起作用,我只会被重定向。
标签: laravel laravel-middleware laravel-route