ErrorException strtotime () erwartet, dass Parameter 1 Zeichenfolge und Array ist
Kann mir jemand helfen? Dies ist mein Controller. Wenn ich versuche, Kaufdaten zu speichern, wird diese Meldung angezeigt. strtotime () erwartet, dass Parameter 1 Zeichenfolge und Array ist. Der Fehler war auf dem $purchase->date = date('Y-m-d', strtotime($request->date));und$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');
}
Hallo, ich versuche zu ändern $purchase->date = date('Y-m-d', strtotime($request->date));in $purchase->date = $request->date;Aber das Ergebnis war Typeerror Argument 1 bestanden Illuminate \ Database \ Grammatik :: parametrierbaren () muss vom Typ Array, String angegeben, genannt in D: \ Project Laravel \ alc-pos \ Anbieter \ laravel \ framework \ src \ Illuminate \ Database \ Query \ Grammars \ Grammar.php in Zeile 869
Antworten
Meiner Meinung nach dürfen Sie Ihr Datum beim Speichern in der Datenbank nicht formatieren. Stattdessen können Sie es bei der Ausgabe aus der Datenbank in Ihre Blade-Vorlagen formatieren.
Wie auch immer, machen Sie eine Überprüfung $request->date, scheint ein Array zu sein.
Sie können Ihr Datum mit Laravel Accessor in Ihrem Modell wie folgt formatieren (Beispiel):
public function getFormattedStartDateAttribute()
{
return $this->start_date->format('d-m-Y');
}
und rufen Sie es dann in Ihrer Blade-Vorlage wie folgt auf (Beispiel):
<input type="text" name="start_date" class="form-control" value="{{$trip->formatted_start_date}}">
Weitere Informationen zu Laravel Mutators & Accessors: Laravel Docs
Sie können auch etwas anderes tun. Auf deiner schema::createMarke:
$table->date('date_name_column');
und dann speichern Sie es einfach wie folgt:
$purchaseDetail->date = $request->input('date');
Auf diese Weise wird das Datum in Ihrer Datenbank wie folgt gespeichert: JJJJ-MM-TT
Ich hoffe es hilft!