Heim >Backend-Entwicklung >PHP-Tutorial >Wie verdichtet man Datenbankoperationen mit der firstOrNew()-Methode von Laravel Eloquent?

Wie verdichtet man Datenbankoperationen mit der firstOrNew()-Methode von Laravel Eloquent?

Linda Hamilton
Linda HamiltonOriginal
2024-10-20 08:52:02895Durchsuche

How to Condense Database Operations with Laravel Eloquent's firstOrNew() Method?

Funktionalität von Laravel Eloquent: Datensätze erstellen oder aktualisieren

Ein Kurzansatz für Datenbankoperationen

Innerhalb des Datenbank-Toolkits von Laravel bietet Eloquent eine praktische Methode zur Handhabung sowohl das Einfügen als auch das Aktualisieren von Datensätzen gleichzeitig. Diese Methode erspart Ihnen den Aufwand, expliziten Code für diese Vorgänge zu schreiben.

Erstellen eines neuen Datensatzes oder Aktualisieren eines vorhandenen Datensatzes:

Stellen Sie sich ein Szenario vor, in dem Sie entscheiden müssen, ob ein neuer Datensatz eingefügt werden soll oder nicht Aktualisieren Sie eine vorhandene Bedingung basierend auf dem Vorliegen einer bestimmten Bedingung. Traditionell wären hierfür separate Prüfungen auf das Vorhandensein von Datensätzen und anschließende Einfügungs- oder Aktualisierungsabfragen erforderlich.

Eine komprimierte Lösung:

Laravel's Eloquent führt einen prägnanten Ansatz für diese Aufgabe ein: firstOrNew(). Wie im bereitgestellten PHP-Snippet gezeigt:

<code class="php">$shopOwner = ShopMeta::where('shopId', '=', $theID)
    ->where('metadataKey', '=', 2001)->first();</code>

Dieser Code prüft, ob in der ShopMeta-Tabelle ein Datensatz mit der angegebenen shopId und dem angegebenen metadataKey vorhanden ist. Wenn kein solcher Datensatz gefunden wird, wird null zurückgegeben.

Daten hinzufügen oder ändern:

Um mit dem Einfüge-/Aktualisierungsprozess fortzufahren:

<code class="php">if ($shopOwner == null) {
    // Insert new record into database
} else {
    // Update the existing record
}</code>

Wenn $shopOwner vorhanden ist tatsächlich null, ein neuer Datensatz kann eingefügt werden. Andernfalls kann der vorhandene Datensatz aktualisiert werden.

Verfeinerung mit firstOrNew():

Eine verbesserte Lösung, wie von „lu cip“ vorgeschlagen, besteht darin, die Methode firstOrNew() zu verwenden, die Folgendes eliminiert die Notwendigkeit einer bedingten Prüfung:

<code class="php">$user = User::firstOrNew(array('name' => Input::get('name')));
$user->foo = Input::get('foo');
$user->save();</code>

Wenn bei diesem aktualisierten Ansatz ein Datensatz mit dem angegebenen Namen vorhanden ist, wird er abgerufen; andernfalls wird ein neuer Datensatz erstellt. Nachfolgende Vorgänge (z. B. das Festlegen von foo) und das Speichern des Datensatzes werden in einem einzigen save()-Aufruf optimiert.

Das obige ist der detaillierte Inhalt vonWie verdichtet man Datenbankoperationen mit der firstOrNew()-Methode von Laravel Eloquent?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn