Данные из таблицы БД повторяются при извлечении - PullRequest
0 голосов
/ 06 января 2020

Просмотр

@foreach($users as $user)
<tr>
<th>{{$user->name}}</th>
<th>{{$user->email}}</th>
<th>{{implode(', ',  $user->roles()->get()->pluck('name')->toArray())}}</th>
</tr>
@endforeach

Я должен получить роли, подобные этому администратору

, но я получаю права администратора, администратора, пользователя

Ответы [ 2 ]

1 голос
/ 06 января 2020

Во-первых, я думаю, что у вашего пользователя есть дублированные роли, вам нужно удалить их или сделать их уникальными.

Во-вторых, не получайте данные из базы данных, используйте активную загрузку в действии вашего контроллера:

$users = User::where(...)->with('roles')->get();

В вашем представлении:

@foreach($users as $user)
<tr>
<th>{{$user->name}}</th>
<th>{{$user->email}}</th>
<th>{{implode(', ',  $user->roles->pluck('name')->unique()->toArray())}}</th>
</tr>
@endforeach
0 голосов
/ 06 января 2020

Попробуйте

@foreach($users as $user)
<tr>
<td>{{$user->name}}</td>
<td>{{$user->email}}</td>
<td>{{$user->roles()->pluck('name')->implode(' ') }}</td>
</tr>
@endforeach
...