美好的一天,
为什么我在laravel 4中迭代循环时出现错误,这是我的控制器上的代码:
当我尝试:
$input = Input::get('product');
echo "<pre>";
dd($input);
我得到的正确值是:
array(3) {
[""]=>
array(1) {
["name"]=>
string(1) "6"
}
[0]=>
array(5) {
["description"]=>
string(64) "default description for test item no. 1. "
["itemId"]=>
string(0) ""
["quantity"]=>
string(2) "10"
["poContentId"]=>
string(1) "7"
["price"]=>
string(2) "60"
}
[1]=>
array(5) {
["description"]=>
string(64) "default description for test item no. 2. "
["itemId"]=>
string(0) ""
["quantity"]=>
string(2) "10"
["poContentId"]=>
string(1) "8"
["price"]=>
string(2) "10"
}
}
但当我尝试迭代循环时,这是我的代码:
foreach ( $input as $v ) {
dd($v['poContentId']);
}
我收到Undefined index: poContentId
错误..
我试图在这里进行批量更新,请你看看我的代码,我不知道我在这里缺少什么。感谢您的导游!
答案 0 :(得分:1)
你的数组构造不好。您有3个索引:""
,0
和1
。在您的第一个索引中,您只有一个只有name
索引且没有poContentId
的小数组,这就是您收到错误的原因。
在你的表格中你必须写下这样的输入:
<input name="name"/>
<input name="items[0][description]"/>
<input name="items[0][itemId]"/>
<input name="items[0][description]"/>
<input name="items[0][quantity]"/>
<input name="items[0][poContentId]"/>
<input name="items[0][price]"/>
<input name="items[1][description]"/>
<input name="items[1][itemId]"/>
<input name="items[1][description]"/>
<input name="items[1][quantity]"/>
<input name="items[1][poContentId]"/>
<input name="items[1][price]"/>
当然,您可以使用Laravel Form类。
就像那样,你只能对项目进行迭代:
$items = Input::get('items');
foreach ( $items as $v ) {
dd($v['poContentId']);
}