我正在为产品订单建立一个应用程序。
客户端可以访问应用程序,为特定产品传递订单。
让我们说:
产品A/数量: 10
产品B/数量: 20
此订单将传递给管理部门,因此管理员将根据仓库中存在的产品(在仓库中实际存储产品)准备所订购的产品。
一个产品可以有许多实例。
例如:
产品A可以存储在3个仓库中,但是有不同的保存数据,如creation,expiration_date,这些数据从一个实例到另一个实例之间的区别
所以管理员必须从仓库里拿起一个产品,并为即将到来的订单做好准备。
我有以下表格:
现在的问题是,我想列出按product_id分组的准备好的产品
当我在做:
$order=Order::find(1);
$order->productwarehouses //relationship defined in order model to get the related products in warehouses
我可以看到所有的准备产品,但不是按“product_id”分组.
我希望做到以下几点:
[
{
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}
}
]}
}]
我希望这是明确的,你可以帮助我!
发布于 2019-11-12 23:38:17
我想你们有一个枢轴表来储存订购的产品。
你必须:
按照产品的顺序模型创建belongsToMany关系。
//Order.php
public function products()
{
return $this->belongsToMany('App\Product','order_product');//order_product is your pivot table to store order products
}
在产品模型中为产品仓库创建一个hasMany关系。
//Product.php
public function productwarehouses()
{
return $this->hasMany('App\Warehouse','ProductWarehouse'); //ProductWarehouse is your table name
}
现在,您可以获取包含详细信息的订单产品如下:
$order->products()->with('productwarehouses')->get();
https://stackoverflow.com/questions/58828100
复制相似问题