[英]Laravel - Saving Dynamic Input Data & Array
我正在做的一个小项目的相当复杂的部分。
我有一个带有装运项目的发票(在模型上标记为invoice和invoice_item),并且通常一个装运中会有多个发票项目。 以下是当前发货项目部分的示例-
当然,它仅以一行开始(最后一行带有“添加更多”按钮)。 使用货运控制器(在右下方),我可以轻松地将shipment_detail保存到我正在处理的特定货运中。
装运控制器
public function store(Shipment $request)
{
$this->validate(request(), [
'pro_number' => 'required',
'shipment_origin' => 'required'
]);
$user_id = Auth::id();
$input = $request->all();
$shipment = new Shipment();
$shipment->pro_number = request('pro_number');
$shipment->shipment_origin = request('shipment_origin');
$shipment->date = request('date');
$shipment->due_date = request('due_date');
$shipment->tractor_id = request('tractor_id');
$shipment->trailer_id = request('trailer_id');
$shipment->driver_id = request('driver_id');
$shipment->notes = request('notes');
$shipment->shipper_no = request('shipper_no');
$shipment->ship_to = request('ship_to');
$shipment->ship_from = request('ship_from');
$shipment->bill_to = request('bill_to');
$shipment->bill_type = request('bill_type');
$shipment->load_date = request('load_date');
$shipment->shipment_status = request('shipment_status');
$shipment->created_by = $user_id;
$shipment_detail = new Shipment_Detail();
$shipment_detail->pieces_number = request('pieces_number');
$shipment_detail->pieces_type = request('pieces_type');
$shipment_detail->rate_type = request('rate_type');
$shipment_detail->weight = request('weight');
$shipment_detail->hazmat = request('hazmat');
$shipment_detail->description = request('description');
$shipment_detail->charge = request('charge');
$shipment->save();
$shipment_detail->shipment_id = $shipment->id;
$shipment->shipment_details()->save($shipment_detail);
return redirect('/shipments');
}
但是,我的问题是我不能一次将多个记录保存到shipping_details。 我知道这必须具有作为数组的输出,但是我不确定如何针对这种特殊情况执行此操作。 有人遇到过这样的事情吗?
PS
我的shipping_details部分的表格如下所示:
<table style="width:100%;" id="freight_bill_items">
<thead>
<td style="width:8%;font-weight:bold;text-align:center;">No. Pieces</td><td style="width:8%; font-weight:bold; text-align:center;">Pieces Type</td><td style="width:16.5%;font-weight:bold;text-align:center;">Rate Type</td><td style="width:16.5%;font-weight:bold;text-align:center;">Weight(lbs)</td><td style="width:16.5%;font-weight:bold;text-align:center;color:red;">HazMat?</td><td style="width:16.5%;font-weight:bold;text-align:center;">Description</td><td style="width:16.5%;font-weight:bold;text-align:center;">Charge</td><td></td>
</thead>
<tbody>
<tr style="height:40px">
<td style="width:8%;text-align:center;"><input type="text" name="pieces_number" class="form-control name_list" id="pieces_number" placeholder="No. Pieces"></td><td style="width:16%;text-align:center;"><select style="width:100%; display:inline" class="form-control" name="pieces_type" id="pieces_type">
<option selected value="">Please select</option>
@foreach($piecetypes as $piecetype)
<option value="{{ $piecetype->id }}">{{ $piecetype->label }}</option>
@endforeach
</select></td><td><select style="width:100%; display:inline" class="form-control" name="rate_type" id="rate_type">
<option selected value="">Please select</option>
@foreach($ratetypes as $ratetype)
<option value="{{ $ratetype->id }}">{{ $ratetype->label }}</option>
@endforeach
</select></td><td style="width:16.5%;text-align:center;"><input type="text" name="weight" id="weight" class="form-control name_list" placeholder="Weight"></td><td style="width:16.5%;text-align:center;"><select style="width:100%; display:inline" class="form-control" name="hazmat" id="hazmat">
<option selected value="0">No</option>
<option>Yes</option>
</select></td><td style="width:16.5%;text-align:center;"><input type="text" name="description" class="form-control name_list" placeholder="Description" id="description"></td><td style="width:16.5%;text-align:center;"><input type="text" name="charge" class="form-control name_list" placeholder="Charge" id="charge"></td<td><td><button type="button" name="add" id="add" class="btn btn-success">Add More</button></td>
</tr>
</tbody>
</table>
在输入类型上使用数组符号,例如: <input type="text" name="some_name[]">
使用for循环获取所有值并保存
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.