ErrorException strtotime () mengharapkan parameter 1 berupa string, array diberikan

Oct 23 2020

Ada yang bisa bantu saya? ini adalah pengontrol saya, ketika saya mencoba untuk menyimpan data 'pembelian' itu menunjukkan pesan ini strtotime () mengharapkan parameter 1 menjadi string, array yang diberikan Kesalahan ada pada $purchase->date = date('Y-m-d', strtotime($request->date));dan$purchaseDetail->date = date('Y-m-d', strtotime($request->date));

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        = date('Y-m-d', strtotime($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');
}

Halo, saya mencoba untuk berubah $purchase->date = date('Y-m-d', strtotime($request->date));menjadi $purchase->date = $request->date;Tapi hasilnya adalah TypeError Argument 1 yang diteruskan ke Illuminate \ Database \ Grammar :: parameterize () harus dari jenis array, string yang diberikan, dipanggil di D: \ Project Laravel \ alc-pos \ vendor \ laravel \ framework \ src \ Illuminate \ Database \ Query \ Grammars \ Grammar.php pada baris 869

Jawaban

MarinarioAgalliu Oct 23 2020 at 08:22

Adapun pendapat saya, Anda tidak boleh memformat tanggal Anda saat menyimpan ke database. Sebagai gantinya Anda dapat memformatnya saat mengeluarkannya dari database ke dalam template blade Anda.

Pokoknya buat cek $request->date, sepertinya array.

Anda dapat memformat tanggal Anda menggunakan aksesor Laravel di model Anda seperti ini (contoh):

    public function getFormattedStartDateAttribute()
    {
        return $this->start_date->format('d-m-Y');
    }

dan kemudian menyebutnya di template blade Anda seperti ini (contoh):

 <input type="text" name="start_date" class="form-control" value="{{$trip->formatted_start_date}}">

Info lebih lanjut tentang Laravel Mutators & Accessors: Laravel Docs

Anda juga bisa melakukan hal lain. Sedang schema::createdibuat:

$table->date('date_name_column');

lalu simpan saja seperti berikut:

        $purchaseDetail->date = $request->input('date');

Dengan cara ini tanggal dalam database Anda akan disimpan sebagai berikut: YYYY-MM-DD

Semoga membantu!