簡體   English   中英

laravel mutliple行保存到數據庫

[英]laravel mutliple row save to database

我是幼稚的初學者。 目前,我正在學習做一個庫存系統。 我有兩個表:goodsreceiveheader和goodsreceivedetail。

單擊提交按鈕時,如何允許多行保存到數據庫中。 希望有人能幫助我,因為我已經堅持了幾個星期了=(

對於goodsreheadheader表,我具有以下領域:

id,
referencenumber,
vendorid(FK),
date,
createdby.

雖然收貨詳細表,但我有以下領域:

id,
goodsreceiveheader_id(FK),
itemid(FK),
quantity,
costprice.

create.blade.php

@extends('admin.layout')

@section('content')
    <fieldset>
        <legend>Create New Goods Receive</legend>
        @include('layouts.error')
        {!! Form::open(['url' => 'goodsreceive/save', 'method'=>'post']) !!}
        @include('goodsreceiveheader.partial._goodsreceiveheader_form')
        {!! Form::close() !!}


    </fieldset>
@endsection

我的觀點:

<style>
    div#gr{
        padding: 20px;
        border:1px solid black;
    }
</style>
<div class="container">
    <h2>Goods Receive</h2>

    <hr>

        <div id="gr" class="row" style="background-color: lightgoldenrodyellow">

            <div class="col-lg-4 col-sm-6">
                <input name="createdby" type="hidden" value="{{ Auth::user()->name }}">
                {!! Form::label('referencenumber', 'Reference Number:')!!}
                <div class="form-group">
                    <input type="text" name="referencenumber" class="form-control" placeholder="Reference Number">
                </div>
            </div>

            <div class="col-lg-4 col-sm-6">
                    {!! Form::label('date', 'Receive Date:')!!}
                    {!! Form::date('date',null,['class'=>'form-control']) !!}
            </div>

            <div class="col-lg-4 col-sm-6">
                {!! Form::label('vendorid', 'Vendor ID:')!!}
                <select name="vendorid" class="form-control">
                    <option value="" selected disabled>Please Select Vendor..</option>
                    @foreach($vendors as $vendor)
                        <option value="{{$vendor->id}}">{{$vendor->vendorid}}</option>
                    @endforeach
                </select>
            </div>
        </div>
    <br>

    <table class="table table-bordered">
        <thead>
        <th>Item Barcode</th>
        <th>Quantity</th>
        <th>Cost Price</th>
        <th style="text-align: center;background: #eee">
            <a href="#" onclick="addRow()">
                <i class="glyphicon glyphicon-plus"></i>
            </a>
        </th>
        </thead>
        <tbody>
        <tr>
            <td>
                <select class="form-control" name="itemid">
                    <option value="" selected disabled>Select Barcode</option>
                    @foreach($items as $item)
                        <option value="{{$item->itemid}}">{{$item->itembarcode}}</option>
                    @endforeach
                </select>
            </td>
            <td><input type="text" name="quantity" class="form-control quantity"></td>
            <td><input type="text" name="costprice" class="form-control costprice"></td>
            <td  style="text-align: center"  onclick="cannotdelete()">
                <a href="#" class="btn btn-danger remove">
                    <i class="fa fa-times"></i>
                </a>
            </td>
        </tr>
        </tbody>
    </table>

    <br>

    <button type="submit" class="btn btn-primary pull-right">Submit</button>

</div>

<script type="text/javascript">
    function addRow()
    {
        var tr='<tr>'+
                '<td>'+
                '<select class="form-control" name="itemid">'+
                '<option value="" selected disabled>Select Barcode</option>'+
                '@foreach($items as $item)'+
                '<option value="{{$item->itemid}}">{{$item->itembarcode}}</option>'+
                '@endforeach'+
                '</select>'+
                '</td>'+
                '<td><input type="text" name="quantity" class="form-control quantity"></td>'+
                '<td><input type="text" name="costprice" class="form-control costprice"></td>'+
                '<td class="remove" style="text-align: center"><a href="#" class="btn btn-danger" onclick="deleteRow()"><i class="fa fa-times"></i></a></td>'+
                '</tr>';

        $('tbody').append(tr);
    }

    function deleteRow()
    {
        $(document).on('click', '.remove', function()
        {
            $(this).parent('tr').remove();
        });
    }

    function cannotdelete()
    {
        alert('You cannot delete the first row!!!')
    }

</script>

我的控制器:

 public function save(GoodsreceiveheaderRequest $request)
    { $data = array(
            'referencenumber'=>$request->referencenumber,
            'vendorid'=>$request->vendorid,
            'date'=>$request->date,
            'createdby'=>$request->createdby,
        );
        $i = DB::table('goodsreceiveheader')->insertGetId($data);

        $goodsreceivedetail = array(
            'goodsreceiveheader_id'=>$i,
            'itemid'=>$request->itemid,
            'quantity'=>$request->quantity,
            'costprice'=>$request->costprice,
        );

        $s = DB::table('goodsreceivedetail')->insert($goodsreceivedetail);

        Session::flash('message','You have successfully create goods receive.');

        return redirect('goodsreceive/goodsreceiveheader_list');
    }

使用插入函數並將數據作為多個數組傳遞,例如,如果模型名稱為“ User”,則下面的代碼將適用於多個條目

用戶::刀片([ '名稱'=> 'XYZ'],[ '名稱'=> 'ABC']);

解決了。

public function save(GoodsreceiveheaderRequest $request)
        {
            $head = Goodsreceiveheader::findorNew($request->id);
            $head->referencenumber=$request->referencenumber;
            $head->vendorid=$request->vendorid;
            $head->date=$request->date;
            $head->createdby=$request->createdby;
            if ($head->save()){
                $id = $head->id;
                foreach($request->itemid as $key =>$item_id){
                    $data = array(
                                    'goodsreceiveheader_id'=>$id,
                                    'itemid'=>$request->itemid [$key],
                                    'quantity'=>$request->quantity [$key],
                                    'costprice'=>$request->costprice [$key],
                        );
                    Goodsreceivedetail::insert($data);
                }
            }
            Session::flash('message','You have successfully create goods receive.');

            return redirect('goodsreceive/goodsreceiveheader_list');
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM