1
쿠폰 코드를 제출할 때 제품 가격을 업데이트하고 싶습니다. 쿠폰 이름을 ticket
으로 지정했습니다.세션의 값을 변경하고 저장하십시오. Laravel
public function order(Request $request)
{
$products = session('cart');
$ticket_code = Input::get('ticket');
$ticket = Ticket::where('ticket', $ticket_code)->first();
foreach($products as $p){
$price = $p['price'];
}
if(count($products) && $ticket['max'] > $ticket['used']) {
$subtotal = [$price*70/100];
$ticket->used += 1;
$ticket->save();
foreach($products as $p){
$p['price'] = $subtotal;
$p->save();
}
flash()->success('Kuponas sėkmingai panaudotas!');
return view('cart.order')->with(array(
'products' => $products,
'subtotal' => $subtotal,
));
}
else {
$finalTotal = 0;
$subtotal = [];
return view('cart.order')->with(array(
'products' => $products,
'subtotal' => $subtotal,
'finalTotal' => $finalTotal
));
}
}
이 코드 나던 작업 :이 제 기능입니다
foreach($products as $p){
$p['price'] = $subtotal;
$p->save();
}
내가 얻을 오류 : foreach
itselfs가 작동 ticket
없이 Call to a member function save() on array
. 그것은 제출 될 때 가격을 변경하지만 한 페이지에만 변경됩니다. 그런 다음 결제 사이트로 이동하면 ticket
없이 가격이 계속 표시됩니다.
작업 용액
foreach($products as &$item) {
$item['price'] = $item['price']*70;
$item['price'] = $item['price']/100;
}
Session::put('cart', $products);
근무 '$ p'의 배열이다! 배열이 아닌 배열 [키]를 저장하려고합니다. 예 :'$ p [ 'key_to_save'] -> save()' – Zl3n
'print_r ($ p);'하고 당신이 얻는 것을보십시오. 당신에게 배열을 가지고있는 것 같아요 ... – nerdlyist
좋아, 어떻게 배열에 저장하지? $ p [ 'price'] -> save();를 tryed했습니다. 그리고 그것은 여전히 같은 에러입니다 –