簡體   English   中英

Laravel 錯誤異常。 數組到字符串的轉換

[英]Laravel Error Exception. Array to string Conversion

我試圖通過單擊插入多行數據,但出現了一個名為“數組到字符串轉換”的錯誤。 並且當我從 Model 中刪除 Brackets[] 時,如下所示:

受保護的 $table = 'biniyojan';

它會引發另一個像這樣的錯誤:(Illuminate\Database\Grammar::parameterize(): Argument #1 ($values) must be of type array, string given)我該如何解決這個問題?

/////查看刀片////////

<form method="POST" action="{{ route('bbcreate') }}">
    @csrf
    <div class="form-row col-x1-3">
        <div class="form-group     col-md-2">
            <input type="date" placeholder="मिति" value="@php echo $today; @endphp" name="date[]" class="form-control" id="inputCity" required>
        </div>
        <div class="form-group col-md-2">
            <select id="inputState" placeholder="" name="ab[]" class="form-control" required>
                <option>2079-080</option>
                <option>2078-079</option>
            </select>
        </div>



        <div class="form-group     col-md-2">
            <select id="inputState" name="school[]" class="form-control" required>
                <option selected disabled>स्रोत पाउने संस्था </option>
                @foreach ($school_array as $sch)
                <option value="{{ $sch -> name }}">{{ $sch -> name}}</option>
                @endforeach
            </select>
        </div>
    </div>
    <div id="form-field">
        <div class="form-row col-x1-3">
            <div class="form-group col-md-2">
                <select id="source" name="source[]" class="form-control" required>
                    <option selected disabled value="">स्रोत</option>
                    <option>केन्द्र</option>
                    <option>प्रदेश</option>
                    <option>स्थानीय</option>
                    <option>अन्य</option>
                </select>
            </div>
            <div class="form-group col-md-2">
                <select id="kriyakalap" name="kriyakalap[]" class="form-control" required>
                    <option selected disabled>क्रियाकलाप</option>
                    @foreach ($bini as $bi)
                    <option value="{{$bi->kriyakalap}}"> {{$bi->kriyakalap}}</option>
                    @endforeach

                </select>
            </div>
            <div class="form-group col-md-2">
                <select name="debit_credit[]" id="debit_credit" class="form-control" required>
                    <option selected="selected" disabled>डेबिट / क्रेडिट</option>
                </select>
            </div>
            <div class="form-group col-md-2">
                <select name="debit_credit_type[]" id="debit_credit_type" class="form-control" required>
                    <option selected="selected" disabled>डेबिट / क्रेडिट प्रकार</option>
                </select>
            </div>

            <div class="form-group col-md-2">
                <input type="text" placeholder="रकम" name="cash[]" class="form-control" id="price" required>
            </div>
            <div class="form-group col-md-2">
                <input type="button" class="btn btn-success" name="add" id="add" value="+">
            </div>
        </div>
    </div>
    <div class="form-row col-x1-3" style="justify-content:left ;">
        <div class="form-group     col-md-2">
            <input type="text" placeholder="ब्यहोरा" name="behora[]" class="form-control" id="behora" required>
        </div>

        <div class="form-group col-md-2">
            <input type="submit" id="submit" name="submit" value="राख्नुहोस्" class="btn btn-primary ">

        </div>

        @if (session('status'))
        <div class="alert alert-success">
            {{ session('status') }}
        </div>
        @endif

    </div>
    <div form-row col-x1-3 id="showdata" class="showdata">
        <p class="show_data"></p>
        <p id="showdata" class="showdata"></p>
    </div>
</form>`enter code here`

Here is my Code
/////Controller////

    public function bbcreate(Request $request)
    {
        $data = $request->all();
        dd($data);
        $biniyojan_details = new BiniyojanDetails();
        $biniyojan_details->school = $data['school'];
        $biniyojan_details->source = $data['source'];
        $biniyojan_details->kriyakalap = $data['kriyakalap'];
        $biniyojan_details->debit_credit = $data['debit_credit'];
        $biniyojan_details->debit_credit_type = $data['debit_credit_type'];
        $biniyojan_details->cash = $data['cash'];
    
        $biniyojan_details->save();


        if (is_countable($data['school']) && count($data['school']) > 0) 
             {
            foreach ($data['school'] as $item => $value) {
                $data2 = array(
                    'details_id' => $biniyojan_details->id,
                    'date' => $data['date'][$item],
                    'ab' => $data['ab'][$item],
                    'school' => $data['school'][$item],
                    'behora' => $data['behora'][$item],
                );
                Biniyojan::create($data2);
            }
        }
        return redirect()->back()->with('status', 'Inserted');
    }


/////View Page /////////

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
        <div id="form-field">
            <div class="form-row col-x1-3">
                <div class="form-group col-md-2">
                    <select id="source" name="source[]" class="form-control" required>
                        <option selected disabled value="">स्रोत</option>
                        <option>केन्द्र</option>
                        <option>प्रदेश</option>
                        <option>स्थानीय</option>
                        <option>अन्य</option>
                    </select>
                </div>
                <div class="form-group col-md-2">
                    <select id="kriyakalap" name="kriyakalap[]" class="form-control" required>
                        <option selected disabled>क्रियाकलाप</option>
                        @foreach ($bini as $bi)
                        <option value="{{$bi->kriyakalap}}"> {{$bi->kriyakalap}}</option>
                        @endforeach

                    </select>
                    @foreach ($bini as $bi)

                    @endforeach
                </div>
                <div class="form-group col-md-2">
                    <select name="debit_credit[]" id="debit_credit" class="form-control" required>
                        <option selected="selected" disabled>डेबिट / क्रेडिट</option>
                    </select>
                </div>
                <div class="form-group col-md-2">
                    <select name="debit_credit_type[]" id="debit_credit_type" class="form-control" required>
                        <option selected="selected" disabled>डेबिट / क्रेडिट प्रकार</option>
                    </select>
                </div>

                <div class="form-group col-md-2">
                    <input type="text" placeholder="रकम" name="cash[]" class="form-control" id="price" required>
                </div>
                <div class="form-group col-md-2">
                    <input type="button" class="btn btn-success" name="add" id="add" value="+">
                </div>
            </div>
        </div>


//////jQuery For Repeat form////////[enter image description here][1]
<!-- form repeat -->

<script type="text/javascript">
        $(document).ready(function() {
        var html = '<span><div id="form-field"> <div class="form-row col-x1-3"> <div class="form-group col-md-2"> <select id="source" name="source[]" class="form-control" required> <option selected disabled value="">स्रोत</option> <option>केन्द्र</option> <option>प्रदेश</option> <option>स्थानीय</option> <option>अन्य</option> </select> </div> <div class="form-group col-md-2"> <select id="kriyakalap" name="kriyakalap[]" class="form-control" required> <option selected disabled>क्रियाकलाप</option> @foreach ($bini as $bi) <option value="{{$bi->kriyakalap}}"> {{$bi->kriyakalap}}</option> @endforeach </select> @foreach ($bini as $bi) @endforeach </div> <div class="form-group col-md-2"> <select name="debit_credit[]" id="debit_credit" class="form-control" required> <option selected="selected" disabled>डेबिट / क्रेडिट</option> </select> </div> <div class="form-group col-md-2"> <select name="debit_credit_type[]" id="debit_credit_type" class="form-control" required> <option selected="selected" disabled>डेबिट / क्रेडिट प्रकार</option> </select> </div> <div class="form-group col-md-2"> <input type="text" placeholder="रकम" name="cash[]" class="form-control" id="price" required> </div> <div class="form-group col-md-2"> <input type="button" class="btn btn-danger" name="remove" id="remove" value="-"> </div> </div> </div></span>';
        var max = 5;
        var x = 1;
        $("#add").click(function() {
            if (x <= max) {
                $("#form-field").append(html);
                x++;
            }
        })
        $("#form-field").on('click', '#remove', function() {
            $(this).closest('span').remove();
            x--;
        });
    });

</script>

<!-- form repeat -->


  [1]: https://i.stack.imgur.com/rzb3C.png

請試試這個:-

public function bbcreate(Request $request){

    $biniyojan_details = new BiniyojanDetails();
    $biniyojan_details->school = $request->school;
    $biniyojan_details->source = $request->source;
    $biniyojan_details->kriyakalap = $request->kriyakalap;
    $biniyojan_details->debit_credit = $request->debit_credit;
    $biniyojan_details->debit_credit_type = $request->debit_credit_type;
    $biniyojan_details->cash = $request->cash;

    $biniyojan_details->save();

    if(!empty($request->school)){
        for($i=0; $i< count($request->school); $i++){
            $biniyojan              = new Biniyojan();
            $biniyojan->details_id  = $biniyojan_details->id;
            $biniyojan->date        = $request->date[$i];
            $biniyojan->ab          = $request->ab[$i];
            $biniyojan->school      = $request->school[$i];
            $biniyojan->behora      = $request->behora[$i];
            $biniyojan->save();

        }

    }
    return redirect()->back()->with('status', 'Inserted');
}

正如您所說,您正在嘗試insert multiple row data

然后您必須將array轉換為json以將其存儲到數據庫中。

這樣做 - json_encode($request->school,true);

暫無
暫無

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

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