【发布时间】:2019-10-06 06:23:37
【问题描述】:
我有一个orders 表、一个items 表和一个名为item_order 的数据透视表,它有两个自定义字段(price、quantity)。 Order 和Item 之间的关系是belongsToMany。我正在尝试返回 ID 为 1 的所有项目的计数,其中父 Order->status == 'received'。对于我的生活,我无法弄清楚如何做到这一点。
class Order extends Model
{
public function items()
{
return $this->belongsToMany(Item::class)->withPivot('price', 'quantity');
}
}
class Item extends Model
{
public function orders()
{
return $this->belongsToMany(Order::class)->withPivot('price', 'quantity');
}
}
【问题讨论】:
-
你的意思是所有的
orders和包含item的status == 'received'? -
我正在尝试计算
$order->status == 'received'所在的特定商品的订购数量。我知道这与数据透视表quantity字段的总和有关,但我不知道该怎么做。 -
这是最新的失败尝试,只是为了让您了解我的想法:
$items = Item::where('id', 1) ->whereHas('orders', function ($query) { $query->where('status', 'received'); }) ->selectRaw('item_order.amount as amount') ->sum('amount')->get();
标签: php laravel laravel-5 eloquent relationship