簡體   English   中英

如何在 laravel 中授權用戶?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM