В настоящее время в моем контроллере проекта Laravel я использую один запрос
ЗАПРОС 1
public function cartreview(Request $request,$sp_id, $service_id,$cart_id)
{
$total = DB::table('pricings')
->join('carts', 'carts.sp_id', '=', 'pricings.sp_id')
->select(DB::raw('sum(pricings.shirt*carts.quantity_shirt ) AS total'))
->where('pricings.sp_id', '=', $sp_id)
->where('carts.id', '=' , $cart_id)
->first();
}
В приведенном выше запросе я использую две таблицы базы данных как цены и корзины
где я вычисляю общую стоимость счета для товара рубашки, получая цену из таблицы и количество из корзины таблицу.
Теперь я также хочу добавить еще один предмет с рубашкой, такой как брюки, галстук и т. Д.
Как передать большее умножение на сумму?
Пожалуйста, помогите мне с синтаксисом. Могу ли я сделать что-то вроде этого
QUERY 2
$total = DB::table('pricings')
->join('carts', 'carts.sp_id', '=', 'pricings.sp_id')
->select(DB::raw('sum(pricings.shirt*carts.quantity_shirt ,
pricings.pant*carts.quantity_pant ,
pricings.tie*carts.quantity_tie) AS total'))
->where('pricings.sp_id', '=', $sp_id)
->where('carts.id', '=' , $cart_id)
->first();
ИЛИ даже если я вычисляю итоговую сумму отдельно для каждого элемента. Как ее добавить?
$total_shirt = DB::table('pricings')
->join('carts', 'carts.sp_id', '=', 'pricings.sp_id')
->select(DB::raw('sum(pricings.shirt*carts.quantity_shirt ) AS total_shirt'))
->where('pricings.sp_id', '=', $sp_id)
->where('carts.id', '=' , $cart_id)
->first();
$total_pant = DB::table('pricings')
->join('carts', 'carts.sp_id', '=', 'pricings.sp_id')
->select(DB::raw('sum(pricings.pant*carts.quantity_pant ) AS total_pant'))
->where('pricings.sp_id', '=', $sp_id)
->where('carts.id', '=' , $cart_id)
->first();
$total_tie = DB::table('pricings')
->join('carts', 'carts.sp_id', '=', 'pricings.sp_id')
->select(DB::raw('sum(pricings.tie*carts.quantity_tie ) AS total_tie'))
->where('pricings.sp_id', '=', $sp_id)
->where('carts.id', '=' , $cart_id)
->first();
$ total = $ total_shirt + $ total_pant + $ total_tie;
Для отображения значения в view.blade.php я использую что-то вроде {{$ total-> total}}
Заранее спасибо.
TRIED:
$waftotal = DB::table('pricings')->join('carts', 'carts.sp_id', '=', 'pricings.sp_id')
->select(DB::raw('sum(
pricings.Regular_Laundry*carts.q_Regular_Laundry,
pricings.Bedding_Mattress_Duvet_Cover*carts.q_Bedding_Mattress_Duvet_Cover,
pricings.Bedding_Comforter_laundry*carts.q_Bedding_Comforter_laundry,
pricings.Bedding_Blanket_Throw*carts.q_Bedding_Blanket_Throw,
pricings.Bedding_Pillow_laundry*carts.q_Bedding_Pillow_laundry,
pricings.Bath_Mat_laundry*carts.q_Bath_Mat_laundry,
pricings.Every_Hang_Dry_Item*carts.q_Every_Hang_Dry_Item
) AS waftotal'))
->where('pricings.sp_id', '=', $sp_id)->where('carts.id', '=' , $cart_id)->first();
но выдает ошибку как
SQLSTATE [42000]: синтаксическая ошибка или нарушение прав доступа: 1064 В синтаксисе SQL есть ошибка; обратитесь к руководству, соответствующему вашей версии сервера MariaDB, чтобы узнать правильный синтаксис для использования рядом с 'valuesings.Bedding_Mattress_Duvet_Cover c' в строке 1 (SQL: выберите сумму (valuesings.Regular_Laundry carts.q_Regular_Laundry, pricings.Bedding_Mattress_Duvet_Cover carts.q_Bedding_Mattress_Duvet_Cover, pricings.Bedding_Comforter_laundry carts.q_Bedding_Comforter_laundry, pricings.Bedding_Blanket_Throw carts.q_Bedding_Blanket_Throw, pricings.Bedding_Pillow_laundry carts.q_Bedding_Pillow_laundry, pricings.Bath_Mat_laundry carts.q_Bath_Mat_laundry, pricings.Every_Hang_Dry_Item carts.q_Every_Hang_Dry_Item) AS waftotal с pricings
внутреннее соединение carts
на carts
. sp_id
= pricings
. sp_id
где pricings
. sp_id
= 1 и carts
. id
= 23 предел 1)
Даже если я пишу отдельные запросы
$waf1 = DB::table('pricings')->join('carts', 'carts.sp_id', '=', 'pricings.sp_id')
->select(DB::raw('sum(pricings.Regular_Laundry*carts.q_Regular_Laundry) AS waf1'))
->where('pricings.sp_id', '=', $sp_id)->where('carts.id', '=' , $cart_id)->first();
$waf2 = DB::table('pricings')->join('carts', 'carts.sp_id', '=', 'pricings.sp_id')
->select(DB::raw('sum(pricings.Bedding_Mattress_Duvet_Cover*carts.q_Bedding_Mattress_Duvet_Cover) AS waf2'))
->where('pricings.sp_id', '=', $sp_id)->where('carts.id', '=' , $cart_id)->first();
$waf3 = DB::table('pricings')->join('carts', 'carts.sp_id', '=', 'pricings.sp_id')
->select(DB::raw('sum(pricings.Bedding_Comforter_laundry*carts.q_Bedding_Comforter_laundry) AS waf3'))
->where('pricings.sp_id', '=', $sp_id)->where('carts.id', '=' , $cart_id)->first();
$waf4 = DB::table('pricings')->join('carts', 'carts.sp_id', '=', 'pricings.sp_id')
->select(DB::raw('sum(pricings.Bedding_Blanket_Throw*carts.q_Bedding_Blanket_Throw) AS waf4'))
->where('pricings.sp_id', '=', $sp_id)->where('carts.id', '=' , $cart_id)->first();
$waf5 = DB::table('pricings')->join('carts', 'carts.sp_id', '=', 'pricings.sp_id')
->select(DB::raw('sum(pricings.Bedding_Pillow_laundry*carts.q_Bedding_Pillow_laundry) AS waf5'))
->where('pricings.sp_id', '=', $sp_id)->where('carts.id', '=' , $cart_id)->first();
$waf6 = DB::table('pricings')->join('carts', 'carts.sp_id', '=', 'pricings.sp_id')
->select(DB::raw('sum(pricings.Bath_Mat_laundry*carts.q_Bath_Mat_laundry) AS waf6'))
->where('pricings.sp_id', '=', $sp_id)->where('carts.id', '=' , $cart_id)->first();
$waf7 = DB::table('pricings')->join('carts', 'carts.sp_id', '=', 'pricings.sp_id')
->select(DB::raw('sum(pricings.Every_Hang_Dry_Item*carts.q_Every_Hang_Dry_Item) AS waf7'))
->where('pricings.sp_id', '=', $sp_id)->where('carts.id', '=' , $cart_id)->first();
$waftotal = $waf1->waf1 + $waf2->waf2 + $waf3->waf3 + $waf4->waf4 + $waf5->waf5 + $waf6->waf6 + $waf7->waf7 ;
В view.blade.php {{$ waftotal}} или {{$ waftotal-> waftotal}} выдает ошибку при попытке получить свойство необъекта.
Предложения будут оценены.