簡體   English   中英

如何更新Laravel會話數組中的單個值?

[英]How to update a single value in a Laravel Session Array?

我有一個像這樣的會話數組:

[
    {
        "itemId": "1",
        "itemQuantity": "3",
        "itemName": "Item_name1"
    },
    {
        "itemId": "2",
        "itemQuantity": "2",
        "itemName": "Item_name2"
    }
]

如果知道itemId如何更新單個項目的數量?

我知道這樣做的一種方法是獲取整個數組,遍歷整個數組,進行更新,然后將整個數組“放入”會話。 這是唯一的方法嗎?

我是初學者。 請幫忙。 謝謝。

對象是通過引用傳遞的,因此您可以輕松地做到這一點。

foreach(Session::get('cart') as $item) {
    if ($item->itemId == '2') { // say we  want to double the quantity for itemId 2
        $item->itemQuantity = $item->itemQuantity * 2;
        break;
    }
}
dd(Session::get('cart'));

輸出:

array:2 [▼
  0 => {#162 ▼
    +"itemId": "1"
    +"itemQuantity": "3"
    +"itemName": "Item_name1"
  }
  1 => {#163 ▼
    +"itemId": "2"
    +"itemQuantity": 4  <<--- the quantity has been doubled
    +"itemName": "Item_name2"
  }
]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM