使用相同名称从具有多个输入的表单请求数据

时间:2015-08-08 14:31:11

标签: php laravel-5

所以我创建了一个表单,该表单将提交给两个单独的表。这是发票建设。每张发票都有可变的行数,因此我创建了两个表,一个用于发票,另一个用于每行。行通过外键绑定到发票表。

使用纯PHP,只需命名输入“name []”然后循环它们即可。但在Laravel,它似乎并不起作用。基本上,我有:

$invoice = new Invoice;
$invoice->fill($data);
$invoice->save();
for ($i = 0; $i < count($request->item); $i++){
    $row = new InvoiceRow;
    $row->fill(array('item' => $request->item[$i], 'description' => $request->description[$i], 'cost' => $request->cost[$i], 'quantity' => $request->quantity[$i], 'total' => $request->itemTotal[$i]));
    $invoice->InvoiceRows()->save($row);
}

它将保存第一行,但不保存其他行。

编辑:这是一些标记,没有用于引导和验证的类。正在使用jQuery为该文档的每个必需行克隆该行。

<tr class="item-row">
                        <td> class="form-control form-inline item-name" name="item[]">
                        </td>
                        <td>
                            <input type="text" name="description[]">
                        </td>
                        <td>
                            <input type="number"  name="cost[]">
                        </td>
                        <td>

                                <input name="quantity[]">

                        </td>
                        <td>
                            <input type="number" name="itemTotal[]">
                        </td>
                    </tr>

1 个答案:

答案 0 :(得分:1)

迭代该对象,例如

$name = $request->name; //here name is the name of your form's name[] field

foreach($name as $names)
{
//do something
}