我按照楼主的“实现用户权限管理”视频教程做一个demo,测试发现可以运行成功,并且可以权限过滤。
但是我的实际项目中使用这个功能就是不写,实在是找不到问题所在;最后我用demo中的laravel项目代码,直接连接我实际项目中的数据库发现还是不成功(修改.env中数据库配置);
代码100%一模一样;
mac、win系统都试过;
laravel5.1的版本;
代码如下:
public function boot(GateContract $gate)
{
parent::registerPolicies($gate);
foreach ($this->getPermissions() as $permission) {
$gate->define($permission->slug, function (User $user) use ($permission) {
dd($user); //demo中的数据库可以显示user信息,但是实际项目中数据库就不运行这里,后来我发现使用dd(Auth:user()); 输出的null,我肯定100%登录成功了,而且在controller中可以正确获取到当前登录用信息
return $user->hasRole($permission->roles);
});
}
}
private function getPermissions()
{
return Permission::with('roles')->get();
}