【发布时间】:2021-07-08 17:44:22
【问题描述】:
我有自己的 Laravel 门定义“isAdmin”和“isManager”。 “auth”中间件仅表示用户已登录。我的路线看起来像这样(非常简化):
Route::middleware(['auth', 'can:isAdmin'])->group(
function () {
Route::get('/', function() { return response("Admin home"); });
}
);
Route::middleware(['auth', 'can:isManager'])->group(
function () {
Route::get('/', function() { return response("Manager home"); });
}
);
但是对于既不是管理员也不是经理的登录用户的路由我该怎么办?我想这样做:
Route::middleware(['auth', 'cannot:isManager', 'cannot:isAdmin'])->group(
function () {
Route::get('/', function() { return response("Who are you, anyway?"); });
}
);
有人有什么想法吗?谢谢。
【问题讨论】:
-
您是否希望该路由仅可供非管理员或管理人员的用户访问,或者管理员和经理也可以查看该页面?
-
不,管理员和经理不应该看到它。
-
我很确定没有
cannnot中间件。您可以创建一个cannot中间件,但我建议只创建另一个门来检查用户是否是“标准”用户(或者最好描述他们)。
标签: laravel laravel-routing laravel-middleware laravel-gate