在laravel 4上迭代循环(更新)

时间:2013-12-07 08:27:43

标签: arrays laravel laravel-4

美好的一天,

为什么我在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错误..

我试图在这里进行批量更新,请你看看我的代码,我不知道我在这里缺少什么。感谢您的导游!

1 个答案:

答案 0 :(得分:1)

你的数组构造不好。您有3个索引:""01。在您的第一个索引中,您只有一个只有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']);
}