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); 再次测试