Upserting mit Laravels Eloquent ORM
In Laravels Eloquent Object-Relational Mapping (ORM) ist es oft notwendig, einen neuen Datensatz zu erstellen, wenn dies der Fall ist nicht existiert, oder aktualisieren Sie einen vorhandenen Datensatz, wenn dies der Fall ist.
Was ist Upserting?
Upserting ist ein Begriff, der die Kombination von Einfüge- und Aktualisierungsvorgängen beschreibt in einen einzigen Befehl umwandeln. Im Kontext einer Datenbank ermöglicht Ihnen das Upserting, entweder einen Einfüge- oder Aktualisierungsvorgang durchzuführen, je nachdem, ob ein Datensatz mit bestimmten Kriterien in der Tabelle vorhanden ist oder nicht.
Upsert-Vorgänge durchführen
In Laravel Eloquent kann das Upserting mit der Methode firstOrNew erreicht werden. Diese Methode verwendet ein Array von Kriterien als Argument und gibt entweder ein vorhandenes Modell zurück, wenn ein Datensatz gefunden wird, der den Kriterien entspricht, oder eine neue Modellinstanz, wenn kein passender Datensatz vorhanden ist.
Beispiel: Upserting eines Benutzers Aufzeichnen
Stellen Sie sich ein Szenario vor, in dem Sie einen neuen Benutzer erstellen möchten, wenn noch keiner vorhanden ist, oder einen vorhandenen Benutzer aktualisieren möchten, falls einer vorhanden ist. Hier ist ein Beispiel:
<code class="php">$user = User::firstOrNew(array('name' => Input::get('name'))); $user->foo = Input::get('foo'); $user->save();</code>
In diesem Beispiel prüft die Methode firstOrNew, ob ein Benutzer mit dem angegebenen Namen bereits in der Datenbank vorhanden ist. Wenn es existiert, wird das vorhandene Modell zurückgegeben. Andernfalls wird eine neue Modellinstanz erstellt und zurückgegeben.
Link zur aktualisierten Dokumentation:
Die neuesten Informationen zum Upserting in Laravel finden Sie in der offiziellen Dokumentation hier: [ Link zu aktualisierten Dokumenten]
Das obige ist der detaillierte Inhalt vonWie führt man Upsert-Operationen mit dem Eloquent ORM von Laravel durch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!