我对我正在做的循环有点怀疑,因为它返回的是空值。首先,我收到这样的物品:$items = Session::get('items');$deco = json_decode($items, true);如果我回来,$deco我会得到这个:{ "items":[ { "id":1, "inventoryID":1, "title":"Product 1", "quantity":1, "unit_price":20, "image":"img.png" }, { "id":2, "inventoryID":1, "title":"Product2", "quantity":1, "unit_price":25, "image":"img.png" } ]}现在,在循环中(我用它来更改一些键的值以集成贝宝)我有这个:$results = []; foreach($deco['items'] as $element) { $name=$element['title']; $quantity=$element['quantity']; $sku= $element['id']; $price=$element['unit_price']; $item = new Item(); $item -> setName($name) ->setCurrency('USD') ->setQuantity($quantity) ->setSku($sku) ->setPrice($price); $results[]=$item; } 如果我返回return $item(在循环外),我(如预期)只得到一个值,而不是所有集合:{"name": "Product2","currency": "USD","quantity": 1,"sku": 2,"price": "25"}但是,如果我返回return $results我需要的 var,它会给我这个(它会根据需要执行项目的 {},但返回空):[{},{}]整个代码看起来像:public function test(){ $items = Session::get('items'); $deco = json_decode($items, true); $results = []; foreach($deco['items'] as $element) { $name=$element['title']; $quantity=$element['quantity']; $sku= $element['id']; $price=$element['unit_price']; $item = new Item(); $item -> setName($name) ->setCurrency('USD') ->setQuantity($quantity) ->setSku($sku) ->setPrice($price); $results[]=$item; } return $results;}
2 回答
绝地无双
TA贡献1946条经验 获得超4个赞
答案(感谢 Ionica 在 discord 的 laravel 社区)是:
$items = Session::get('items');
$deco = json_decode($items,true);
$itemList = new ItemList();
foreach($deco['items'] as $element) {
$item = new Item();
$item->setName($element['title'])
->setCurrency('USD')
->setQuantity($element['quantity'])
->setSku($element['id'])
->setPrice($element['unit_price']);
$itemList->addItem($item);
}
$arr = $itemList->toArray();
return $arr;
- 2 回答
- 0 关注
- 176 浏览
添加回答
举报
0/150
提交
取消