Maison >base de données >tutoriel mysql >Comment insérer en masse plusieurs lignes avec Eloquent ou Query Builder dans Laravel ?

Comment insérer en masse plusieurs lignes avec Eloquent ou Query Builder dans Laravel ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-12 20:11:45324parcourir

How to Bulk Insert Multiple Rows with Eloquent or Query Builder in Laravel?

Utiliser Eloquent/Fluent pour insérer par lots plusieurs lignes de données à partir d'une seule requête

Question :

Vous avez une requête qui renvoie un tableau d'ID utilisateur et d'ID de compte. Comment puis-je insérer ces lignes dans un autre tableau, en m'assurant que le tableau résultant a le format suivant :

<code>ID | user_id | subject_id
1 | 8 | 9
2 | 8 | 2</code>

Réponse :

Laravel propose deux méthodes pour insérer des données par lots dans des tables : en utilisant Eloquent ou Query Builder.

Méthode éloquente :

<code class="language-php">$data = [
    ['user_id' => 8, 'subject_id' => 9],
    ['user_id' => 8, 'subject_id' => 2],
];

UserSubject::insert($data);</code>

Méthode Query Builder :

<code class="language-php">DB::table('table')->insert($data);</code>

Les deux méthodes acceptent un tableau associatif, où chaque tableau représente une ligne à insérer. Les mutateurs (tels que les horodatages) sont appelés lors de l'utilisation des méthodes Eloquent, mais pas lors de l'utilisation des méthodes Query Builder.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn