【发布时间】:2017-06-25 19:59:37
【问题描述】:
我正在尝试使 laravel 基本授权。我正在使用门进行 laravel 授权。
表结构
User Table, Permission Table, Role, role_permission table
user : id, name , password, email
permission : id, name
role:id , name
role_permission: id, role_id, permission_id
authServiceProvider
public function boot(GateContract $gate)
{
$this->registerPolicies();
foreach($this->getPermissions() as $permission)
{
$gate->define($permission->name,function($user) use($permission){
return $user->role->id == $permission->role_id;
});
}
}
public function getPermissions()
{
$permissions = \DB::table('role_permission')
->join('permissions', 'permissions.id', '=', 'role_permission.permission_id')
->select('role_permission.*','permissions.*')
->get();
return $permissions;
}
它不能正常工作意味着我无法访问该路由,尽管它在相应用户的权限表中。
【问题讨论】:
-
那里有一个未注释的
dd()...而且,这有点低效。您可以只查询用户的权限,而不是系统中的每个权限。 -
如果不需要,请从您的问题中删除
dd($permission)。 -
虽然我删除了它..我认为用户和角色的查询存在问题..
-
其实你没有
-
好的,我已经更新了..现在请检查
标签: php laravel laravel-5 laravel-authorization