Я пытаюсь сделать базовую авторизацию 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
поставщик услуг авторизации
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()
... Кроме того, это несколько неэффективно. Вы можете запросить только разрешения пользователя, а не все разрешения в вашей системе. - person Stuart Wagner   schedule 08.02.2017dd($permission)
из своего вопроса за ненадобностью. - person Onix   schedule 08.02.2017