【问题标题】:Laravel eloquent: Multiply two columns of two different tables and displayLaravel 雄辩:将两个不同表的两列相乘并显示
【发布时间】:2018-04-29 07:59:48
【问题描述】:

购物车表列:

    'id',
    'user_id',
    'sp_id',
    'service_id',
    'dryclean',
    'q_Shirt',
    'q_Pant',
    'q_Tie'

定价表列:

'id'
'sp_id'
'Shirt'
'Pant'
'Tie'

两个表没有定义了任何关系。

在购物车控制器中

public function cart($sp_id, $service_id)
    {
     $prices = DB::table('pricings')->where('pricings.sp_id', '=', $sp_id)->get();
     $cart = DB::table('carts')->where('carts.service_id', '=' , $service_id)->where('carts.sp_id','=', $sp_id)->where('user_id', '=' , auth()->id())->orderBy('id', 'desc')->take(1)->get();
     return view('user.cart')->with('prices', $prices)->with('cart', $cart);
    }

如何计算订单总额?

如果 column dryclean 的值为 none,则总计为 0。 否则总计将是

(
carts->q_Shirt*prices->Shirt +
carts->q_Pant*prices->Pant +
carts->q_Tie*prices->Tie
) 

这段代码只是为了理解我是如何计算总数的

请帮我在 laravel 控制器中编写代码来计算总数以及如何在视图中显示。

【问题讨论】:

    标签: laravel laravel-5 eloquent


    【解决方案1】:

    我认为不太了解你,但你可以试试这个有一些想法。

    $prices = DB::table('pricings')
                     ->where('pricings.sp_id', '=', $sp_id)
                     ->get();
    $cart = DB::table('carts')
              ->where('carts.service_id', '=' , $service_id)
              ->where('carts.sp_id','=', $sp_id)
              ->where('user_id', '=' , auth()->id())
              ->orderBy('id', 'desc')->take(1)
              ->get();
    $total = 0;
    $prices->reduce(function($acc, $current) use ($cart, &$total) {
          return $total += ($current->Shirt + $cart->q_Shirt) + 
                    ($current->Pant + $cart->q_Pant) + 
                    ($current->Tie + $cart->q_Tie);
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-05
      • 2022-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-07
      • 1970-01-01
      相关资源
      最近更新 更多