How to pass multiple parameters to middleware with OR condition in Laravel 5.2

后端 未结 6 1549
误落风尘
误落风尘 2020-12-06 00:48

I am trying to set permission to access an action to two different user roles Admin, Normal_User as shown below.

Route::group([\'middleware\' => [\'role_c         


        
6条回答
  •  孤街浪徒
    2020-12-06 01:08

                //please take note there must be space between ... $roles
    
            //on your route make sure there is no space in between the roles 
            'checkRole:staff,admin'
    
            public function handle($request, Closure $next, ... $roles)
            {
            foreach($roles as $role){
            if ($request->user()->hasRole($role)){
            return $next($request);
            }
            }
            abort(404);
            }
    
            you can try this out also 
    
    
            Route::group(['middleware' => 'role:webdev|admin'], function () {
            });
            public function handle($request, Closure $next, $role)
    
            {
            $roles = collect(explode('|',$role));
            if (! $request->user()->hasRole($roles)) {
            abort(404, 'No Way');
            }
            return $next($request);
            }
    

提交回复
热议问题