首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >基于父表LARAVEL上字段的元素分组

基于父表LARAVEL上字段的元素分组
EN

Stack Overflow用户
提问于 2019-11-12 23:17:33
回答 1查看 66关注 0票数 0

我正在为产品订单建立一个应用程序。

客户端可以访问应用程序,为特定产品传递订单。

让我们说:

产品A/数量: 10

产品B/数量: 20

此订单将传递给管理部门,因此管理员将根据仓库中存在的产品(在仓库中实际存储产品)准备所订购的产品。

一个产品可以有许多实例。

例如:

产品A可以存储在3个仓库中,但是有不同的保存数据,如creation,expiration_date,这些数据从一个实例到另一个实例之间的区别

所以管理员必须从仓库里拿起一个产品,并为即将到来的订单做好准备。

我有以下表格:

  • Product
  • Warehouse
  • ProductWarehouse (产品和Warehouse)
  • Order
  • OrderProductWarehouse之间的支点)

现在的问题是,我想列出按product_id分组的准备好的产品

当我在做:

代码语言:javascript
运行
复制
$order=Order::find(1);
$order->productwarehouses  //relationship defined in order model to get the related products in warehouses

我可以看到所有的准备产品,但不是按“product_id”分组.

我希望做到以下几点:

代码语言:javascript
运行
复制
[
{
product_id : 1

prepared_products: [
{ product_id: 1,
  expiration_date:12/10/2019},
{ product_id: 1,
  expiration_date:08/10/2019}
}

]},


{
product_id : 2

prepared_products: [
{ product_id: 2,
  expiration_date:10/10/2019},
{ product_id: 2,
  expiration_date:04/10/2019}
}

]}


}]

我希望这是明确的,你可以帮助我!

EN

回答 1

Stack Overflow用户

发布于 2019-11-12 23:38:17

我想你们有一个枢轴表来储存订购的产品。

你必须:

按照产品的顺序模型创建belongsToMany关系。

代码语言:javascript
运行
复制
//Order.php
public function products()
{
     return $this->belongsToMany('App\Product','order_product');//order_product is your pivot table to store order products
}

在产品模型中为产品仓库创建一个hasMany关系。

代码语言:javascript
运行
复制
//Product.php
public function productwarehouses()
{
     return $this->hasMany('App\Warehouse','ProductWarehouse'); //ProductWarehouse is your table name
}

现在,您可以获取包含详细信息的订单产品如下:

代码语言:javascript
运行
复制
$order->products()->with('productwarehouses')->get();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58828100

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档