Php 如何更新Laravel会话数组中的单个值?
我有这样一个会话数组:Php 如何更新Laravel会话数组中的单个值?,php,session,laravel,laravel-5,Php,Session,Laravel,Laravel 5,我有这样一个会话数组: [ { "itemId": "1", "itemQuantity": "3", "itemName": "Item_name1" }, { "itemId": "2", "itemQuantity": "2", "itemName": "Item_name2" } ] 如果我知道itemId,如何更新单个项目的数量 我知道这样做的一种方法是获取
[
{
"itemId": "1",
"itemQuantity": "3",
"itemName": "Item_name1"
},
{
"itemId": "2",
"itemQuantity": "2",
"itemName": "Item_name2"
}
]
如果我知道itemId
,如何更新单个项目的数量
我知道这样做的一种方法是获取整个数组,循环遍历数组,进行更新,然后将整个数组“放”回会话中。
这是唯一的办法吗
我是初学者。请帮忙。
谢谢。对象是通过引用传递的,因此您可以简单地执行此操作
foreach(会话::获取('cart')作为$item){
如果($item->itemId=='2'){//,则表示我们希望将itemid2的数量增加一倍
$item->itemQuantity=$item->itemQuantity*2;
打破
}
}
dd(会话::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"
}
]
数组:2[▼
0 => {#162 ▼
+“itemId”:“1”
+“项目数量”:“3”
+“项目名称”:“项目名称1”
}
1 => {#163 ▼
+“itemId”:“2”
+“itemQuantity”:4如果您使用的是数组会话驱动程序,恐怕这是唯一的选择。我还可以使用什么驱动程序?谢谢!嘿!出于好奇,您的itemId
是否自动递增?如果是,您是如何实现的?@peterm我正在尝试类似的方法,但我得到的是“尝试获取非对象的属性”“$item->itemQuantity=$item->itemQuantity*2;”@peterm是的,我不知道为什么会发生这种情况,因为我的代码是基于您的:foreach(Session::get('cart.program')as$item){if($item->id='1xxx'){$item->segment_weekday='9';break;}
@peterm var\u dump(Session get::get('cart.program')):array(size=2)0=>array(size=1)'id'=>string'1'(长度=1)1=>array(size=1)'id'=>string'1xxx'(长度=4)
@peterm感谢您的帮助。我可以访问数组成员,只是不知道如何通过引用&$item
传递$item
以保存回会话。@peterm在