【发布时间】:2021-07-18 17:07:40
【问题描述】:
首先,如果我的标题有误,我深表歉意。我找不到如何陈述我遇到的问题。我正在做一个 Laravel 项目。我有两个名为 orders 和 order_items 的表。
Mysql 表:
订单
- order_id
- 订单日期
- order_customer_id
order_items
- order_item_id
- order_id
- order_item_product_id
- order_piece
我想要达到的图像:
我想以手风琴菜单的形式向用户显示他帐户中的订单以及属于该订单的产品。页面上可能有多个订单。当我尝试使用 leftJoin 时,自然会多次重复相同的顺序。我不明白这是我需要在 mysql 端还是 php 端解决的问题。你能给我一个关于这件事的指导吗?
我当前的代码:
$query = Order::query();
$query->where('order_customer_id', $customerID);
$query->leftJoin('order_items', 'orders.order_id','=','order_items.order_id');
$data['orderList'] = $query->get();
return view('pages.orders.index', $data);
【问题讨论】:
-
请展示您的查询,您从中得到什么,以及您想要得到什么。
-
非常感谢您的快速回复。我将代码添加到我的问题中。
-
问题到底出在哪里?您的查询结果如何?
-
你为什么使用
leftJoin而不是关系?应该是Order::with('items')->all(),类似的,你的问题就解决了。分享您的 2 个模型,以便我们帮助您处理关系。还要考虑到您没有遵循标准关系的命名,您的表应该称为items,并且在您的列中有id、order_id、product_id和price。
标签: php mysql laravel join many-to-many