0

我使用 laravel spatie 权限包,需要在数据表列表中显示每个用户的用户角色。现在我添加数据表addColumn方法:

$items = Admin::orderBy('id','DESC');

return DataTables::of($items)
    ->addColumn('role',function(Admin $admin){

        foreach($admin->getRoleNames() as $v){
            return $v;
        }

    })
    ->toJson(); 

此代码工作并显示每个用户的角色名称,但如果用户有两个角色名称(多个角色)我的代码不起作用并且只显示第一个角色名称。即:对于用户,test我有两个角色名称:moderator并且editor我只看到版主。

在此处输入图像描述

如何在数据表列表中为每个用户显示多个角色名称?!

4

2 回答 2

0

我发现了这一点并且工作正常:

return DataTables::of($items)
    ->addColumn('roles',function(Admin $admin){

        return $admin->roles->pluck('name')->toArray();
    })
    ->toJson();
于 2020-02-17T13:18:36.623 回答
0
public function roles()
{
    return $this->hasMany('App\Role');
}
public function user()
{
    return $this->belongsTo('App\User');
} 

我认为您应该将这些方法添加到您的user模型中,并将第二个方法添加到您的role模型中

于 2020-02-17T09:00:32.380 回答