【问题标题】:Laravel Spatie To Get User RoleLaravel Spatie 获取用户角色
【发布时间】:2021-01-05 08:37:31
【问题描述】:

模型文件

class BanUser extends Model
    {        
    public function user()
                {
                    return $this->belongsTo(User::class, "user_id", "id");
                }   
        
         public static function getBanList()
                {
                  
                    $getlist = BanUser::with(['user'])
                                ->get()
                                ->toArray();
            
                    return $getlist;
                    
                }
    }

//数据

[0] => Array
                (
                    [id] => 3
                    [user_id] => 2
                    [created_at] => 2020-09-16T16:06:54.000000Z
                    [updated_at] => 2020-09-16T16:06:54.000000Z
                    [user] => Array
                        (
                            [id] => 2
                            [name] => hi
                            [email] => hi@gmail.com
                            [email_verified_at] => 
                            [created_at] => 2020-09-10T12:18:18.000000Z
                            [updated_at] => 2020-09-10T12:19:11.000000Z
                   
                        )

                )

上面的代码是检索所有禁止用户列表,但是每个用户都附加了一个角色,我如何加入角色表以便检索每个用户的角色?我使用了 laravel spatie 权限。任何人都可以在这方面提供帮助吗? :(

【问题讨论】:

  • 你能显示用户和角色模型之间的关系吗?
  • 所以...with('user.roles')?

标签: php laravel permissions laravel-permission


【解决方案1】:

我猜你可以用这个

public function user()
{
     return $this->belongsTo(User::class, "user_id", "id")->with('roles');
}

这个roleslaravel spatie添加的,所以你可以使用这个

这是角色模型https://github.com/spatie/laravel-permission/blob/master/src/Models/Role.php

您可以使用的所有可用功能 https://github.com/spatie/laravel-permission/blob/master/src/Traits/HasRoles.php


以另一种方式

public static function getBanList()
{              
     $getlist = BanUser::with(['user.roles']) // it will get user as well as all the roles of that user
                           ->get()
                            ->toArray();
      return $getlist;                
}

【讨论】:

    【解决方案2】:

    你可以像这样选择idname

    $request->user()->roles()->pluck('name','id');

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-29
      • 2020-09-17
      • 1970-01-01
      • 2021-08-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多