getRoleNames 方法作为用户模型中的访问器。 Spatie Laravel 权限

问题描述 投票:0回答:1

我正在尝试创建一个将返回用户角色名称的访问器。可以访问 User 模型中的 getRoleNames() 方法吗?

//User Model

/**
     * The accessors to append to the model's array form.
     *
     * @var array
     */
    protected $appends = [
        'role_name',
    ];

/**
     * Ge the user's role name.
     * 
     * @return Attribute
     */
    public function roleName(): Attribute
    {
        return Attribute::make(
            get: function () {
                $user = User::find($this->id);
                
                return $user->getRoleNames();
            },
        );
    }

我尝试将其作为访问器,但它返回 null

php laravel laravel-permission
1个回答
0
投票

您需要在您的用户模型中添加以下特征。

use \Spatie\Permission\Traits\HasRoles;

然后您就可以轻松访问它了。

© www.soinside.com 2019 - 2024. All rights reserved.