Php 如何在Laravel Blade中将多个子行数据与父行一起添加
我一直在尝试通过blade添加多个数据。在我的刀片表单中,我使用克隆,添加行。例如,一个请购单包含多个项目 我的刀片视图 刀片视图代码Php 如何在Laravel Blade中将多个子行数据与父行一起添加,php,laravel-6,Php,Laravel 6,我一直在尝试通过blade添加多个数据。在我的刀片表单中,我使用克隆,添加行。例如,一个请购单包含多个项目 我的刀片视图 刀片视图代码 <form autocomplete="off" method="POST" action="{{ route("requisition.store") }}" enctype="multipart/form-data"> @csrf <div class="form-group">
<form autocomplete="off" method="POST" action="{{ route("requisition.store") }}" enctype="multipart/form-data">
@csrf
<div class="form-group">
<label class="required" for="purpose">Purpose</label>
<input class="form-control" type="text" name="purpose" id="purpose" required>
<span class="help-block"></span>
</div>
<div class="form-group">
<label class="required" for="requisition_date">Date</label>
<input class="form-control" type="date" name="requisition_date" id="requisition_date" required>
<span class="help-block"></span>
</div>
<div class="form-group">
<label class="required" for="requested_by">Released By</label>
<input class="form-control" type="text" name="requested_by" id="requested_by" required>
<span class="help-block"></span>
</div>
<table class="table table-bordered">
<thead>
<tr>
<th>Qty</th>
<th>Unit</th>
<th>Description</th>
<th>
<a href="#" class="addRow"><i class="fas fa-plus"></i></a>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<input type="number" name="rows[0][qty]" class="form-control quantity" required>
</td>
<td>
<input type="text" name="rows[0][unit]" class="form-control" required>
</td>
<td>
<input type="text" name="rows[0][description]" class="form-control" required>
</td>
<td>
</td>
</tr>
</tbody>
</table>
<div class="form-group">
<button class="btn btn-danger" type="submit">
Save
</button>
</div>
</form>
}
我的商店控制器代码中的问题是,它只添加一个项目,而不是多个项目。
我的模型:
申请表=‘id’、‘目的’、‘申请日期’、‘申请人’、‘申请日期’
请购单项目表='id','请购单id','qty','unit','description'
dd($行)结果
我认为最简单的方法是像这样使用附加输入和刀片输入
name="qty[]"
而不是
name="rows[0][qty]"
在控制器循环中,通过始终添加的一个字段。比如,
for($i = 0; $i < sizeof($request->qty); $i++)
{
RequisitionItem::insert([
'requisition_id' => $requisition->id,
'qty' => $request->qty[$i],
'unit' => $request->unit[$i],
'description' => $request->description[$i]
]);
}
for($i=0;$iqty);$i++)
{
requisionItem::insert([
'请购单id'=>$requision->id,
“数量”=>$request->数量[$i],
“单位”=>$request->unit[$i],
'description'=>$request->description[$i]
]);
}
您也可以按照此步骤操作
for($i = 0; $i < sizeof($request->qty); $i++)
{
$items[] = [
'requisition_id' => $requisition->id,
'qty' => $request->qty[$i],
'unit' => $request->unit[$i],
'description' => $request->description[$i]
];
}
RequisitionItem::insert($items);
for($i=0;$iqty);$i++)
{
$items[]=[
'请购单id'=>$requision->id,
“数量”=>$request->数量[$i],
“单位”=>$request->unit[$i],
'description'=>$request->description[$i]
];
}
requisionItem::插入($items);
plzdd($rows)
并发布。我发布您调用的$request->input('rows')的dd($rows)结果;但在您的应用程序中,我看不到任何输入名称为“行”HTML@BossPogs你的$rows只有一行,请检查你的js代码,它真的增加了更多的行来请求吗?我编辑我的问题,并显示我的js代码,如果我做的是正确的克隆。我只是想看看它是否正确
for($i = 0; $i < sizeof($request->qty); $i++)
{
RequisitionItem::insert([
'requisition_id' => $requisition->id,
'qty' => $request->qty[$i],
'unit' => $request->unit[$i],
'description' => $request->description[$i]
]);
}
for($i = 0; $i < sizeof($request->qty); $i++)
{
$items[] = [
'requisition_id' => $requisition->id,
'qty' => $request->qty[$i],
'unit' => $request->unit[$i],
'description' => $request->description[$i]
];
}
RequisitionItem::insert($items);