Laravel 5.1 ACL权限控制 四 之middleware

1、创建Middleware

php artisan make:middleware MustBeAnAdmin

2、实现 MustBeAnAdmin.php中的handle方法,判断登录的用户是否为管理员

    public function handle($request, Closure $next)
    {
        if($request->user() && $request->user()->isAdmin()) {
            return $next($request);
        }
        return  redirect('/');
    }

  在User.php中实现isAdmin方法

    public function isAdmin() {
        return $this->hasRole('admin');
    }

3、在Kernel里的$routeMiddleware注册middleware路由

'admin' => AppHttpMiddlewareMustBeAnAdmin::class,

4、在PostController.php中实现middleware

    public function __construct()
    {
        $this->middleware('admin');
    }

5、到此我们再在roles、role_user表中个添加一条数据 

  roles表

  

  role_user表

   

  登录不同的用户,经测试访问正常(admin能正常访问,member访问跳转到首页),

  如果访问有问题,请在第4步  $this->middleware('admin'); 前添加 Auth::loginUsingId(1); 再次测试

 

原文地址:https://www.cnblogs.com/Caoxt/p/5010627.html