ErrorException strtotime () erwartet, dass Parameter 1 Zeichenfolge und Array ist

Oct 23 2020

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

MarinarioAgalliu Oct 23 2020 at 08:22

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!