我正在使用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.
}
}