Laravel eloquent: умножьте два столбца двух разных таблиц и отобразите - PullRequest
0 голосов
/ 29 апреля 2018

Телеги таблицы столбцов:

    '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);
    }

Как рассчитать общую сумму заказа?

Если столбец dryclean не имеет значения none, итоговое значение равно 0 . иначе всего будет

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

Этот код просто для понимания того, как я вычисляю сумму

Пожалуйста, помогите мне написать код в контроллере laravel, чтобы рассчитать итоговое значение и способ его отображения в виде.

1 Ответ

0 голосов
/ 29 апреля 2018

Я не думаю, что понимаю вас хорошо, но вы можете попробовать это, чтобы иметь представление.

$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);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...