2016-12-17 36 views
1

我正在开发web应用程序与laravel 5.2。 我需要的是我有一些按角色区分的关闭帐户。我必须能够访问1路线但其他角色无法访问的角色。我已经浏览,我已经做了我发现的所有内容Laravel多个midleware的一些路由

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

i get eror ErrorException在Router.php行579: trim()期望参数1是字符串,数组给定 – Frasaccordi

+0

是否可以使用route get?不是路线组? – Frasaccordi

+0

@Frasaccordi这是我的错误编辑。 –

0

您可以创建一个名为role中间件,在文档here

中间件的handle方法会像阅读更多关于中间件:

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 
});