Guest User

Untitled

a guest
Jul 21st, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.95 KB | None | 0 0
  1. class Order extends Model
  2. {
  3. public function products() {
  4. return $this->belongsToMany('AppProduct', 'order_products')
  5. ->withPivot('count', 'price', 'amount');
  6. }
  7. }
  8.  
  9. class OrderProduct extends Model
  10. {
  11. public function product() {
  12. return $this->belongsTo('AppProduct');
  13. }
  14.  
  15. public function order() {
  16. return $this->belongsTo('AppOrder');
  17. }
  18. }
  19.  
  20. select * from orders join (
  21. select order_id, sum(price) * count as sum from order_products group by order_id
  22. ) op on orders.id = op.order_id
  23.  
  24. $orders = Order::leftJoin('order_products', 'order_products.order_id', '=', 'orders.id')
  25. ->select('orders.*', DB::raw( 'sum( order_products.price * order_products.count) as `total`' ) )
  26. ->groupBy('orders.id')
  27. ->orderBy('total', 'DSC')
  28. ->get();
  29.  
  30. $orders = Order::all()
  31. ->transform(function($item) {
  32. $item->total_amount = $item->products->sum('amount');
  33. return $item;
  34. });
Add Comment
Please, Sign In to add comment