Heim  >  Artikel  >  Backend-Entwicklung  >  Wie fügt man Datensätze mit der Methode firstOrNew() von Eloquent effizient ein oder aktualisiert sie?

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

Susan Sarandon
Susan SarandonOriginal
2024-10-20 08:47:01440Durchsuche

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);
  • $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>

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>

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>

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!

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