Wie überprüft man, ob ein Datensatz in Laravel neu ist?
Ich habe vor kurzem angefangen mit Eloquent.
Wenn ich in PHP Active Record, es war eine nette Funktion, die überprüft, ob ein Datensatz aus der Datenbank geladen, oder wird eine neue Instanz. Gibt es etwas ähnliches in Eloquenter, dass ich verwenden könnte?
Durch neue ich meine:
$article = new Article;
in der Erwägung, dass aus der Datenbank wäre
$article = Article::find(1);
InformationsquelleAutor der Frage Craig Ward | 2013-08-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Alle laravel Modelle haben eine
->exists
Eigenschaft.Genauer gesagt, wenn das Modell entweder aus der Datenbank geladen, oder wurde in der Datenbank gespeichert, da erstellt wird, die
exists
Eigenschaft true, Ansonsten false zurück.Wenn Sie wissen möchten, wenn das Modell geändert wurde, seit er packte aus der Datenbank, oder einfach nicht gespeichert werden auf allen (auch wenn er retten muss), dann können Sie die
->isDirty()
Funktion.Den Laravel-API ist ein nützlicher Ort für diese Art von Informationen:
http://laravel.com/api/4.2/Illuminate/Database/Eloquent/Model.html#method_isDirty
und oft wirft weit mehr Licht als die Standard-Dokumentation.
InformationsquelleAutor der Antwort Hailwood
Ihre model-Objekt hat ein Attribut genau dafür vorgesehen. Es ist wasRecentlyCreated :
InformationsquelleAutor der Antwort Didier Sampaolo
Wir können
$appends
auf Modell, wenn Sie es verwenden, viele Male.. zum Beispiel um zu überprüfen, ob die neu erstellte Kommentar wird bearbeitet nach angelegt.Können Sie es verwenden, wie
InformationsquelleAutor der Antwort shakee93
Bin ich mit Laravel Eloquent ist updateOrCreate() - Methode zum erstellen oder aktualisieren von Datensätzen beim Import aus einer CSV-Datei.
Wollte ich zählen Sie die Anzahl der neu angelegten Datensätze und aktualisiert die Datensätze. Da die
updateOrCreate()
Methode speichert den Eintrag in die Datenbank bei der Erstellung,$product->exists
immer wiedertrue
.Alternative ist der Vergleich der
created_at
undupdated_at
Zeitstempel des Modells mit der aktuellen Zeit:InformationsquelleAutor der Antwort HPage
so
InformationsquelleAutor der Antwort Wizzard