添加对资源路由的控制

时间:2016-10-02 19:41:58

标签: laravel laravel-5.1 laravel-routing

我的资源路线如下:

$router->resource('subnets', 'subnetController');

我在文档中看到资源路由可以有一系列参数...是否有一个参数允许您选择谁可以访问这些路由?如果我使用的基本路由类似于:

Route::get('/subnets', function () {
   if (Auth::user()['attributes']['role'] == 'admin') return view('subnets.index');
   else return view ('errors.403');
});

1 个答案:

答案 0 :(得分:0)

你应该使用中间件..

  1. 创建中间件> https://laravel.com/docs/5.3/middleware
  2. 在处理程序中间件上写这个
  3. public function handle($request, Closure $next)
        {
            if ($request->user()->role == 'admin') {
                 return $next($request);
             }
             abort(403, 'Access denied');
        }
    
    1. routes.php文件
    2.   Route::group(['middleware' => 'your_middleware_name'], function () {
            Route::resource('subnets', 'subnetController');
           });