Überprüfen Sie, ob das Modell gespeichert wurde
save()
gibt einen booleschen Wert, gespeichert oder nicht zurück Gerettet. Sie können also entweder:
$saved = $myModel->save();
if(!$saved){
App::abort(500, 'Error');
}
Oder direkt im if:
speichernif(!$myModel->save()){
App::abort(500, 'Error');
}
Beachten Sie, dass es keinen Sinn macht, save()
aufzurufen zweimal hintereinander wie in deinem Beispiel. Übrigens lösen viele Fehler oder Probleme, die das Speichern des Modells verhindern würden, sowieso eine Ausnahme aus...
Überprüfen Sie, ob die Abfrage ein Ergebnis zurückgegeben hat
first()
gibt null
zurück Wenn kein Datensatz gefunden wird, funktioniert Ihre Überprüfung. Alternativ können Sie aber auch firstOrFail()
verwenden was automatisch eine ModelNotFoundException
auslöst wenn nichts gefunden wird:
$UserProduct = Product::where('seller_id', '=', $userId)->firstOrFail();
(Das Gleiche gilt für find()
und findOrFail()
)
Überprüfen Sie, ob die Abfrage ausgeführt wurde
Leider mit create
Es ist nicht so leicht. Hier ist die Quelle:
public static function create(array $attributes)
{
$model = new static($attributes);
$model->save();
return $model;
}
Wie Sie sehen, wird eine neue Instanz des Modells mit den $attributes
erstellt und dann save()
aufrufen . Nun, wenn save()
wo Sie true zurückgeben, wissen Sie nicht, weil Sie sowieso eine Modellinstanz erhalten würden. Sie könnten beispielsweise nach der Modell-ID suchen (da diese erst verfügbar ist, nachdem der Datensatz gespeichert und die neu erstellte ID zurückgegeben wurde)
if(!$newUser->id){
App::abort(500, 'Some Error');
}