0
のは、私はこれらのモジュールを持っているとしましょう:Laravel雄弁和関係のコラム
- クーポン
- 注文(..、coupon_id)
- 項目(...、ORDER_ID、価格)
そして、それらの関係があります
Coupon
多数ありOrder
Order
多くてItem
があります。
これまでのところとても良いです。
今、私はクーポンに属する注文に属するアイテムの価格を合計したいと思います。だから私はこのような何かをやって考えた:
Coupon::orders->items->sum('price');
orders()
方法は関係のCollection
を返すため、まあ、それは動作しません。
/**
* @return \Illuminate\Database\Eloquent\Relations\HasMany
*/
public function orders()
{
return $this->hasMany(Order::class);
}
私はitem
プロパティをというエラーを取得しています保護されています。 Item
モジュールに関連していないことがわかりました。それはCollection
にprotected $items = [];
があるからです。
私はいくつかの事実を明らかにした後、Coupon
に属するorders
のitems->price
をどのように合計することができますか?
$price = 0;
foreach (Coupon:orders as $order)
$price += $order->items->sum('price');
return $price;
をしかし、私はクリーンな解決策を探しています:
もちろん私はこのようなforeachループを実行して、私の目標を達成することができます。誰でも?それを達成するために
私は番目のオプションを使用しました、ありがとうございます。 –