繁体   English   中英

Laravel-保存动态输入数据和数组

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM