ErrorException strtotime () mengharapkan parameter 1 berupa string, array diberikan
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
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!