Laravel 5.2 和 'Zizaco/entrust' : 如何控制角色对不同路径的访问


Laravel 5.2 and `Zizaco/entrust` : How to control role's access to different path?

我正在使用Laravel 5.2和Zizaco/entrust 5.2.x。
如何控制角色对不同路径的访问?
例如:
管理员的路线是这样的:

Route::group(['middleware' => 'web'], function () {
    Route::auth();
    Route::group(['prefix' => 'admin','namespace' => 'Admin'], function () {
        Route::resource('dashboard', 'DashboardController');
     });
});

我希望角色admin可以访问http://www.example.com/admin/dashboard/
其他角色无法访问它,我该怎么办?

您可以在中间件中检查管理员角色。由于您使用的是zizaco/entrust,因此您可以使用hasRole检查角色。

在中间件 Web 中使用此代码。

 public function handle($request, Closure $next)
    {
        if (!$user->hasRole('admin')) {
            return redirect('home');//Redirect to any page you wish.
        }
    }