sr9*_*yar 6 php arrays laravel laravel-5 laravel-5.4
我的请求数据代表一系列新项目和现有项目.我正在尝试通过此数组来更新和创建项目.
这是我检索数组的方法:
$userInput = $request->all();
foreach( $userInput['items'] as $key=>&$item){
Run Code Online (Sandbox Code Playgroud)
稍后在代码中我更新了一个现有项目:
$updateItem = Item::find($item['id']);
$updateItem->number = $item['number'];
$updateItem->save();
Run Code Online (Sandbox Code Playgroud)
但$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();
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是来自html的输入(只是为了显示我也检查了表单,数据来得很好):
<input id="basicItemNumber-31" class="form-control" name="items[31][number]" placeholder="Unique number" value="31" type="text">
Run Code Online (Sandbox Code Playgroud)
当您通过引用传递下属的值时(在变量名称之前使用),您可能在内部的某个地方for无意中更改了它的值。$item&
例如,某些或大多数人认为这是不好的做法,因为它可能导致“意外”行为。采用下面的示例代码,该代码循环遍历 ofarray两次$items,一次按引用循环,一次按值循环。
<?php
$items = ['one','two','three'];
foreach ($items as &$item) {
//do nothing.
}
foreach ($items as $item) {
//do nothing again.
}
var_dump($items);
//outputs
array(3) {
[0]=>
string(3) "one"
[1]=>
string(3) "two"
[2]=>
&string(3) "two"
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14087 次 |
| 最近记录: |