首页 > 解决方案 > Laravel 从表单传递数组并在控制器中解析

问题描述

我有一系列输入,如下所示:

<input type='hidden' name='sheepNames[]' value='bab' />
<input type='hidden' name='sheepNames[]' value='harry' />
<input type='hidden' name='sheepTitles[]' value='leader' />
<input type='hidden' name='sheepTitles[]' value='sheep' />

在我的控制器中,我需要遍历数组并将它们保存在带有列的数据库nametitle

bab | leader <br>
harry | sheep
  $array = $request->get('sheepNames');

  foreach($array as $i => $item)
  {
    $tb_name->name= $array[$i];
    $tb_name->title= $request->get('sheepTitles')[$i];
  }

尝试了多种访问数组的方法,但似乎无法弄清楚。

标签: phparrayslaravelformspost

解决方案


使用几个数组可能更容易做到这一点。

$names = $request->get('sheepNames');
$titles = $request->get('sheepTitles');

$max = count($names);
for ($x = 0; $x <= $max; $x ++){
    $tb_name[$x]['name']= $names[$x];
    $tb_name[$x]['title'] = $titles[$x];
}

我不知道 $tb_name 是什么,但按照你上面的方式,它会不断被覆盖,所以我把它做成了一个数组来说明这一点。

另外 - 您需要对标题计数进行一些错误检查以确保它们 == 名称,否则您可能会在标题数组上有一个损坏的索引。


推荐阅读