2017-07-26 84 views
0

我開始與spatie/laravel權限。我可以使用我的刀片權限。工作正常。我想要的是控制它在更高的水平。所以我不必在每一個create.blade.php使用它Laravel最好的地方來控制你的角色和權限

@can('add users') or @hasrole('administrator') 

我在哪裏和如何實現這一目標?

+0

Laravel 5.5將有刃::如果聲明,這樣可以在指令https://laracasts.com/series進行自定義/ whats-new-in-laravel-5-5/episodes/10 –

+0

您是否考慮過路線和中間件作爲選項? 另外還有一個關於認證和授權的laracasts課程 – Maky

+0

是@Maky,現在我有$ request-> user() - > can(\ Request :: route() - > getName())在一箇中間件中。所以在我的權限表中,我有users.create等特定用戶。這是「好」的方式嗎? – Bas

回答

0

解決方案是一箇中間件:

public function handle($request, Closure $next, $role, $permission=null) 
{ 
    if(Auth::user()){ 
     if($request->user()->can(\Request::route()->getName())===false){ 
      return response(view('noaccess')); 
     } 
    } 

    return $next($request); 
} 

user has permission table

persmissions table