簡體   English   中英

如何解決:傳遞給 Illuminate\Database\Grammar::parameterize() 的參數 1 必須是數組類型,給定的字符串

[英]How to solve: Argument 1 passed to Illuminate\Database\Grammar::parameterize() must be of the type array, string given

我想存儲date ,但出現問題。

輸入

    <div class="col-lg-6">
       <div class="form-group">
          <label>Date</label>
          <input type="date" name="date" id="date" class="form-control form-control-sm">
       </div> 
    </div>


Controller
public function store(Request $request){
        if($request->category_id == null){
            return redirect()->back()->with('error', 'Please Purchase The Product');
        } else{
            // Multipale Data Insert start //
            $purchase = new purchase();
            $purchase->purchase_no = $request->purchase_no;
            $purchase->date        = $request->date; 
            $purchase->description = $request->description;
            $purchase->status      = '0';
            $purchase->created_by  = Auth::user()->id;
            DB::transaction(function() use($request,$purchase) {
               if($purchase->save()) {
                // Purchase Details Insert Start //
                $category_id = count($request->category_id);
                for ($i=0; $i < $category_id; $i++) { 
                    $purchaseDetail = new purchaseDetail();
                    $purchaseDetail->date               = date('Y-m-d', strtotime($request->date));
                    $purchaseDetail->purchase_id        = $purchase->id;
                    $purchaseDetail->supplier_id        = $request->supplier_id[$i];
                    $purchaseDetail->category_id        = $request->category_id[$i];
                    $purchaseDetail->product_id         = $request->product_id[$i];
                    $purchaseDetail->buying_qty         = $request->buying_qty[$i];
                    $purchaseDetail->unit_price         = $request->unit_price[$i];
                    $purchaseDetail->buying_price       = $request->buying_price[$i];
                    $purchaseDetail->discount_amount    = $request->discount_amount[$i];
                    $purchaseDetail->ppn                = $request->ppn[$i];
                    $purchaseDetail->status              = '0';
                    $purchaseDetail->save();
                }
            }
            });
        }
        // Redirect 
        return redirect()->route('purchase.view')->with('success', 'Purchase Added Successfully');
    }

當我存儲它時,出現如下錯誤:

傳遞給 Illuminate\Database\Grammar::parameterize() 的參數 1 必須是數組類型,字符串給定,在 D:\Project Laravel\alc-pos\vendor\laravel\framework\src\Illuminate\Database\Query\ 中調用第 869 行的語法\語法.php

我嘗試更改此$purchase->date = $request->date;

進入這個$purchase->date = date('Ym-d', strtotime($request->date)); 它出現類似ErrorException strtotime() expects parameter 1 to be string, array given的錯誤:

strtotime() 期望參數 1 為字符串,數組給定

看起來$request->date是一個數組。 通過echo print_r($request->date, true);確認確認$request->date確實是一個數組,如果是,您可以查看它的結構。 從那里拿走。

go 並沒有那么多,但是。

編輯:

最終解決方案(由評論部分的@JulienBaldy 提供):更改

$purchase->date = $request->date;

進入

$purchase->date = date('Ym-d', strtotime( $request->date[0]));

暫無
暫無

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

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