Wie fügt man Datensätze mit der Methode firstOrNew() von Eloquent effizient ein oder aktualisiert sie?

Susan Sarandon
Freigeben: 2024-10-20 08:47:01
Original
433 Leute haben es durchsucht

How to Insert or Update Records Efficiently Using Eloquent's firstOrNew() Method?

Einfügen oder Aktualisieren von Datensätzen in Laravel Eloquent

Bei der Arbeit mit Datenbanken kommt es häufig vor, dass ein neuer Datensatz eingefügt werden muss, wenn dieser nicht vorhanden ist, oder ein vorhandener Datensatz aktualisiert werden muss wenn ja. Im Eloquent ORM von Laravel kann dies präzise mit der Methode firstOrNew() erfolgen.

Syntax

$model = Model::firstOrNew($attributes);
Nach dem Login kopieren
  • $attributes: Ein Array von Attributen, die in der ersten vorhanden sein sollten oder neu erstellter Datensatz.

Vorhandene Datensätze aktualisieren

Wenn der Datensatz bereits in der Datenbank vorhanden ist, gibt die Methode firstOrNew() eine Instanz dieses Modells zurück. Anschließend können Sie seine Attribute ändern und ihn mit der Methode save() speichern.

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

Neue Datensätze einfügen

Wenn der Datensatz nicht in der Datenbank vorhanden ist, verwenden Sie die Methode firstOrNew() erstellt eine neue Instanz des Modells mit den angegebenen Attributen. Anschließend wird der Datensatz in die Datenbank eingefügt, wenn Sie die Methode save() aufrufen.

<code class="php">// Insert new record into database</code>
Nach dem Login kopieren

Alternativer Ansatz

Im bereitgestellten Codeausschnitt wird auch der folgende Ansatz verwendet, um a einzufügen Erstellen Sie einen neuen Datensatz, wenn er nicht vorhanden ist, oder aktualisieren Sie einen vorhandenen Datensatz, wenn dies der Fall ist:

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

if ($shopOwner == null) {
    // Insert new record into database
} else {
    // Update the existing record
}</code>
Nach dem Login kopieren

Bei diesem Ansatz wird zunächst die Datenbank abgefragt, um den vorhandenen Datensatz abzurufen. Wird kein Datensatz gefunden, wird ein neuer Datensatz eingefügt. Andernfalls wird der vorhandene Datensatz aktualisiert.

Aktualisierte Dokumentation

Die neuesten Informationen zur Methode firstOrNew() finden Sie in der unten verlinkten aktualisierten Dokumentation.

[Aktualisierte Dokumentation Link](https://laravel.com/docs/8.x/eloquent)

Das obige ist der detaillierte Inhalt vonWie fügt man Datensätze mit der Methode firstOrNew() von Eloquent effizient ein oder aktualisiert sie?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!