Изменить значение многомерного массива в сеансе Laravel - PullRequest
0 голосов
/ 04 марта 2019

У меня есть корзина для покупок, и я хочу обновить сумму в сеансе корзины.

Это мой сеанс корзины:

array:1 [▼
  1 => array:6 [▼
    "name" => "Carocroc Lam"
    "image" => "carocroc_lam_15kg.jpg"
    "price" => 45.95
    "unit" => 15
    "name_unit" => "kg"
    "amount" => "2"
  ]
]

Итак, я знаю, что мне нужноforeach, чтобы обновить товар в корзине, но когда я делаю это и отправляю его обратно на запрос, он только добавляет сумму товара.

Я хочу получить только то, что будет обновлена ​​только суммаи отправьте весь обновленный массив обратно в корзину.

Я надеюсь, что кто-нибудь может мне помочь.

Ответы [ 3 ]

0 голосов
/ 04 марта 2019
$cartItems = new Collection();
foreach ($items as $item) {
    $cartItem = new CartItem();
    $cartItem->amount = $item['amount'];
    $cartItem->save();
    $cartItems.push($cartItem);
}

return $cartItems;

Если вы хотите сохранить его в коллекции и вернуть его должным образом, вы можете использовать этот код.Если вы хотите отредактировать массив напрямую, а затем выполнить обновление, вы можете использовать приведенный выше код от @ party-ring с небольшим количеством дополнительной информации ниже.

foreach ($cartItems as &$cartItem) {
  $cartItem['amount'] = NEWAMOUNTVALUE;
  CartItem::update($cartItem);
}

return $cartItems;
0 голосов
/ 04 марта 2019

Я нашел решение сам, я сделал следующее, и оно сработало.

foreach ($currentCart as $item){
  $currentCart[1] = [
      'name' => $item['name'],
      'image' => $item['image'],
      'price' => $item['price'],
      'unit' => $item['unit'],
      'name_unit' => $item['name_unit'],
      'amount' => $item['amount'] = $request->input('amount'),
  ];
  $request->session()->put('cart', $currentCart);
}
0 голосов
/ 04 марта 2019

Итак, скажем, вы сохранили массив корзины как $cartItems, вы можете сделать:

foreach ($cartItems as $cartItem) {
  $cartItem['amount'] = NEWAMOUNTVALUE;
}

Если вам нужна дополнительная помощь, пожалуйста, уточните в комментариях!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...