Два промежуточных программного обеспечения работают отдельно.IsAdmin проверяет, что пользователь является администратором IsPatreon проверяет, что пользователь является patreon ...
Вы не можете объединить эти 2 промежуточных программного обеспечения с помощью OR
Operator
Возможно, вам нужно создать новое промежуточное программное обеспечение, что-то вродеIsAdminOrPatreon
и проверяете ли вы внутри этого промежуточного программного обеспечения и предоставляете это промежуточное программное обеспечение своей группе.
Или вы можете попробовать с параметрами промежуточного программного обеспечения, например,
Route::group(['middleware' => ['checkRoles:admin,patreon']], function(){
Route::resource('patreon', 'patreonGalleryController', ['names'=>[
'index'=>'patreonGallery.index',
'create'=>'patreonGallery.create',
'store'=>'patreonGallery.store',
'edit'=>'patreonGallery.edit',
'show'=>'patreonGallery.show',
'destroy'=>'patreonGallery.destroy',
]]);
});
И у вас checkRoles
middleware получает роли admin
и patreaon
, например:
public function handle($request, Closure $next) {
// will contain ['role1', 'role2']
$allowedRoles = array_slice(func_get_args(), 2);
// here you can loop and check your roles
}
Примечание!Если вы сдадите 'checkRoles:admin,patreon'
, вы получите
array(admin,patreon)
Если вы пройдете 'checkRoles:admin'
, вы получите
array(admin)