我正在使用laravel 5.2开发Web应用程序。 我需要的是我有一些以角色为特色的账户。我必须有可以访问1路线但其他角色无法访问的角色。我有浏览,我做了我发现的所有事情
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 :(得分: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 });
})
答案 1 :(得分: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
});