laravel - 拉取时重复 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
我应该得到像这个管理员用户这样的角色
但我正在成为管理员,管理员用户,用户
解决方案
首先,我认为您的用户具有重复的角色,您需要删除它们,或者使它们独一无二。
其次,不要在视图中从 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
推荐阅读
- c# - 使用 DB 在应用程序中进行更改时如何更新原始 SQLite DB 文件
- java - 更改包名而不更改文件路径
- sql - 如何在 presto SQL 中按月分组
- json - 使用 JQ 命令将文本文件转换为 json
- sql - SQL 查询以选择列中值的特定部分
- spring-boot - 如何将单独的引导服务器设置为绑定的 DLT
- java - 如果使用 Sping 出现异常或无效输入,如何重定向 URL?
- python - 从字典中删除特定值
- javascript - 检查页面中是否存在弹出窗口?以及如何在 IBM RFT 中处理它
- flutter - 在 Flutter 中运行单元测试时出现 MissingPluginException