Verwendung von Eloquent/Fluent zum stapelweisen Einfügen mehrerer Datenzeilen aus einer einzigen Abfrage
Frage:
Sie haben eine Abfrage, die ein Array von Benutzer-IDs und Konto-IDs zurückgibt. Wie kann ich diese Zeilen in eine andere Tabelle einfügen und dabei sicherstellen, dass die resultierende Tabelle das folgende Format hat:
<code>ID | user_id | subject_id 1 | 8 | 9 2 | 8 | 2</code>
Antwort:
Laravel bietet zwei Methoden zum Batch-Einfügen von Daten in Tabellen: mit Eloquent oder Query Builder.
Eloquente Methode:
<code class="language-php">$data = [ ['user_id' => 8, 'subject_id' => 9], ['user_id' => 8, 'subject_id' => 2], ]; UserSubject::insert($data);</code>
Query Builder-Methode:
<code class="language-php">DB::table('table')->insert($data);</code>
Beide Methoden akzeptieren ein assoziatives Array, wobei jedes Array eine einzufügende Zeile darstellt. Mutatoren (z. B. Zeitstempel) werden bei der Verwendung von Eloquent-Methoden aufgerufen, nicht jedoch bei der Verwendung von Query Builder-Methoden.
Das obige ist der detaillierte Inhalt vonWie füge ich mehrere Zeilen mit Eloquent oder Query Builder in Laravel in großen Mengen ein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!