Laravel 5.1 ACL权限控制 四 之middleware

时间:2021-07-07 17:26:21

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' => \App\Http\Middleware\MustBeAnAdmin::class,

4、在PostController.php中实现middleware

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

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

  roles表

  Laravel 5.1 ACL权限控制 四 之middleware

  role_user表

  Laravel 5.1 ACL权限控制 四 之middleware 

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

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