2

我有自己的 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?"); });
    }
);

有人有什么想法吗?谢谢。

4

1 回答 1

0

您可以在启动方法的 app/Providers/AuthServiceProvider.php 中将新规则(门)设置为 notAdminAndManager 这是一些示例

Gate::define('isNotAdminAndManager', function (User $user) {
    return (! in_array($);
});
于 2021-11-09T19:53:26.587 回答