繁体   English   中英

Mysql 两张表之间的多对多关系问题

[英]Mysql many-to-many relationship problem between two tables

首先,如果我的标题有误,我深表歉意。 我找不到如何解决我遇到的问题 state。 我正在研究 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);

从您的数据库中,我看到了它的一对多关系(不像您的标题所说的多对多)。

您可以在model上创建关系

OrderItem.php

public function order(){
    $this->belongsTo(Order::class);
}

订购.php

public function orderitem(){
    $this->hasMany(orderitem::class);
}

controller ,获得订单

$orders = Order::with('orderitems')->get();
return view('yourview',compact('orders'))

视图

@foreach($orders as $order)
   {{$oder->name}}
   @foreach($order->orderitem as $orderItem)
       {{$orderItem->name}}
   @endforeach
@endforeach

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM