【发布时间】:2019-09-19 05:12:59
【问题描述】:
我有一个只能通过 2 个中间件规则之一访问的路由资源组。我已经注册了它们,如果我单独测试它们,它们都可以独立工作,但是当我将它们放在一起时,它们就不起作用了
我尝试将它们都作为“或”语句运行(这意味着中间件按预期工作)但这意味着任何未登录的人也可以出于某种原因访问路由。如果我使用逗号分隔中间件,则对所有人都将其屏蔽。我知道这两个中间件都可以正常工作,因为如果我独立尝试它们,它们确实可以工作。我正在使用下面的代码
Route::group(['middleware' => ['IsAdmin' or 'IsPatreon']], function(){
Route::resource('patreon', 'patreonGalleryController', ['names'=>[
'index'=>'patreonGallery.index',
'create'=>'patreonGallery.create',
'store'=>'patreonGallery.store',
'edit'=>'patreonGallery.edit',
'show'=>'patreonGallery.show',
'destroy'=>'patreonGallery.destroy',
]]);
});
我如何设置它以便只有管理员或 patreon 用户才能看到路径?
【问题讨论】:
-
您不能应用带有 OR 条件的中间件。如果您说两个用户都必须通过两者才能被路由。这是一种使用或/或中间件的方法(但它来自 2016 年)。 stackoverflow.com/a/38712654/3585500
标签: php laravel middleware