首页 > 解决方案 > 拉取时重复 db 表中的数据

问题描述

看法

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

我应该得到像这个管理员用户这样的角色

但我正在成为管理员,管理员用户,用户

标签: laravelmethodsimplode

解决方案


首先,我认为您的用户具有重复的角色,您需要删除它们,或者使它们独一无二。

其次,不要在视图中从 db 获取数据,在控制器操作中使用预先加载:

$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

推荐阅读