Heim >Backend-Entwicklung >PHP-Tutorial >Wie verdichtet man Datenbankoperationen mit der firstOrNew()-Methode von Laravel Eloquent?
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.
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.
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.
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.
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!