php - 如何通过多对多关系获得不同的记录
问题描述
我有以下数据透视表。
+----+------------+------------+ | 编号 | 表A_id | 表B_id | +----+------------+------------+ | 1 | 1 | 1 | | 2 | 1 | 2 | | 3 | 1 | 3 | | 4 | 2 | 1 | | 5 | 2 | 4 | +----+------------+------------+
控制器:
$tableAs = \App\TableA::all();
模型中已经定义了多对多关系,下面是视图代码。
@foreach ($tableAs as $tableA)
@foreach ($tableA->$tableBs as $tableB)
<p>{{ $tableA->id . ' - ' . $tableB->id }}</p>
@endforeach
@endforeach
现在,我想为表 B 获取不同的行。
如果在表上方,则当前输出为:
1 - 1
1 - 2
1 - 3
2 - 1 // <- not expect
2 - 4
在视图文件中不写逻辑的情况下实现我的希望的最佳实践是什么?
解决方案
你能试试这个代码吗
$tableAs = \App\TableA::distinct('tableB_id')->all();
推荐阅读
- javascript - 安装 pg-native 依赖项的问题
- visual-studio-extensions - 在 Visual Studio 中以编程方式从项目模板创建项目
- php - 问题解析器与 Carbon 约会并获得差异 PHP , Carbon
- graphicsmagick - GraphicsMagick:在调整非方形纵横比的大小后总是制作方形图像
- timescaledb - time_bucket_gapfill 如何定义一周的范围
- ruby-on-rails - 带有连接表的 ActiveRecord 明确查询
- java - 用Java读取文件的格式异常
- c - C 结构和类型定义
- function - 依赖类型作为 Coq 中的函数参数
- flutter - 如何检查设备是否需要 SafeArea?(需要底部/顶部填充)