Laravel 5.1 ACL权限控制 四 之middleware

it2022-05-05  136

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表

  

  role_user表

   

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

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

 

转载于:https://www.cnblogs.com/Caoxt/p/5010627.html

相关资源:Laravel5.1框架注册中间件的三种场景详解

最新回复(0)