[英]How to authorization user in laravel?
我有user
表:
| id | username | password | role_id |
|:--:|:--------:|:--------:|:-------:|
| 1 | user1 | password | 10 |
| 2 | user2 | password | 11 |
和role
表:
| id | name |
|:--:|:----:|
| 10 | admin|
| 11 | superadmin|
這意味着user
表應該與role
表有關系。
我對如何使用關系表進行授權感到困惑,我嘗試將此方法包含在我的user
model 中,但不起作用:
public function role()
{
return $this->belongsTo(Role::class, 'role_id', 'id');
}
這是我在 authserviceprovider 中的Gate
:
public function boot()
{
$this->registerPolicies();
Gate::define('isSuperadmin', function ($admin) {
return $admin->role == 'superadmin';
});
}
當您 go $admin->role
時,它將返回角色的 model 實例,它不是字符串,您應該有
$admin->role->name === 'superadmin'
附帶說明一下,調用 admin var $user
對我來說更有意義,因為它可能是普通用戶
使用spatie/laravel-permission package 代替角色/權限管理。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.