laravel 기본 승인을 얻으려고합니다. laravel 인증을 위해 게이트를 사용하고 있습니다.Laravel Gate : 인증이 작동하지 않습니다.
테이블 구조
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)'을 제거하십시오. – Onix
나는 – Hola