添加对资源路由的控制

add control to resource routes

我的资源路线如下:

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

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

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

你应该使用中间件..

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