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