laravel показать несколько данных в таблицах данных - PullRequest
0 голосов
/ 17 февраля 2020

Я работаю с пакетом разрешений laravel spat ie и мне нужно показать роль пользователя для каждого пользователя в списках таблиц данных. теперь я добавляю datatables addColumn метод:

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

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

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

    })
    ->toJson(); 

этот код работает и показывает имя роли для каждого пользователя, но если у пользователя два имени роли (несколько ролей) Мой код не работает и показывает только первое имя роли , ie: для пользователя test У меня есть две роли: moderator и editor Но я вижу только модератора.

enter image description here

Как можно ли отобразить несколько имен ролей для каждого пользователя в списке таблиц данных?!

Ответы [ 2 ]

0 голосов
/ 17 февраля 2020

Я нашел это и работаю верно:

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

        return $admin->roles->pluck('name')->toArray();
    })
    ->toJson();
0 голосов
/ 17 февраля 2020
public function roles()
{
    return $this->hasMany('App\Role');
}
public function user()
{
    return $this->belongsTo('App\User');
} 

Я думаю, что вы должны добавить эти методы к вашей user модели и второй метод к вашей role модели

...