2016-12-17 9 views
1

私はlaravel 5.2でWebアプリケーションを開発しています。 私が必要とするのは、役割によって区別されるいくつかのアカウントを持っていることです。私は1つのルートにアクセスできる役割を持たなければならないが、他の役割はアクセスできない。私はブラウジングをしていて、私が見つけたものすべてをやりました。いくつかのルート用Laravel複数ミドルウェア

Route::group(['prefix' => '/', 'middleware' => ['role:user_a','role:user_b']], function(){someroute} 

Route::group(['prefix' => '/', 'middleware' => ['role:user_a|role:user_b']], function(){someroute} 

Route::group(['prefix' => '/', 'middleware' => ['role:user_a,role:user_b']], function(){someroute} 

誰もいません。私は私の単一のルートを2つの役割によってアクセスできるが、他の役割は無効にする方法を知らない。

答えて

0

私はあなたがこれを行うことはできないと思うが、あなたはこの方法を使うことができる。

Route::group(['prefix'=>'/', 'middleware' =>['role:user_a','role:user_b']],function(){ 

     Route::group(['prefix'=>'userAorB', 'middleware' =>['role:user_a|role:user_b']],function(){ Routes }); 
     Route::group(['prefix'=>'userAANDB', 'middleware' =>['role:user_a,role:user_b']],function(){ Routes }); 

}) 
+0

私はerorを取得します Router.phpのErrorException 579: trim()は、パラメータ1が文字列であると仮定します。配列は – Frasaccordi

+0

です。ルートグループではない? – Frasaccordi

+0

@Frasaccordiそれは私の間違いだった編集されました。 –

0

あなたはミドルウェアのhandle方法はのようになります。ドキュメントにhere

のミドルウェアについての詳細を読み、roleという名前のミドルウェアを作成することができます。そして、あなたはあなたのルートでそれを使用することができます

public function handle($request, Closure $next) 
{ 
    if (auth()->user()->role('b')) { 
     return redirect('home'); 
    } 
    // else users of other roles can visit the page 
    return $next($request); 
} 

ファイル名:

Route::group(['middleware' => 'role'], function() { 
    // someroute 
}); 
関連する問題