我的请求数据表示一系列新的和现有的项目。我试图通过这个数组来更新和创建项目。Laravel 5.4:如何迭代请求数组?
这是我如何检索数组:
$userInput = $request->all();
foreach($userInput['items'] as $key=>&$item){
代码我更新现有项目后期:
$updateItem = Item::find($item['id']);
$updateItem->number = $item['number'];
$updateItem->save();
但$item['number']
似乎包含从以前的更新旧的输入,而不是价值我上次进入了。
如何循环访问Laravel中的请求数据?
这是整个代码,我运行它(想摆脱混乱):
$userInput = $request->all();
// checking $userInput here
// I can see the new value in the array
foreach($userInput['items'] as $key=>$item){
if($item['delete'] == 1) {
Item::where('order_id',$order->id)
->where('id',$item['id'])
->delete();
} else {
if(empty($item['id'])) {
} else {
$updateItem = Item::find($item['id']);
$updateItem->number = $item['id'];
$updateItem->save();
}
}
}
这是HTML的输入(只是为了显示我检查的形式此外,数据来就好了):
<input id="basicItemNumber-31" class="form-control" name="items[31][number]" placeholder="Unique number" value="31" type="text">
没有通过'$ item'在参考了'for',你可以得到意外的行为。即使用'$ item' * not *'&$ item' – Luke
删除这个&。将会工作 – JYoThI
我更新了我的问题,通过值传递仍然给了我相同的结果。 – sr9yar