Position actuelle: Accueil> Derniers articles> Comment mettre à jour par lots plusieurs données dans Laravel: activer des opérations de données efficaces

Comment mettre à jour par lots plusieurs données dans Laravel: activer des opérations de données efficaces

gitbox 2025-07-14

Préface

Laravel est un très excellent cadre PHP qui offre de nombreuses fonctionnalités et outils puissants. Dans le développement réel, nous rencontrons souvent des situations où plusieurs données doivent être mises à jour en même temps. Si la quantité de données mises à jour est très importante, la mise à jour de chaque enregistrement une par une peut être très gênante et inefficace. À l'heure actuelle, en utilisant la fonction de mise à jour par lots de Laravel, plusieurs données peuvent être mises à jour en même temps, améliorant l'efficacité de l'exécution du code. Cet article vous présentera comment mettre à jour par lots plusieurs données dans Laravel.

Mise à jour par lots de plusieurs données

Dans Laravel, plusieurs éléments de données peuvent être facilement mis à jour par lots en utilisant la méthode de mise à jour fournie par Eloquent. Eloquent est l'outil ORM le plus couramment utilisé (mappage relationnel d'objet) dans Laravel, ce qui rend les opérations de base de données plus concises et plus faciles à comprendre.

Grâce à la méthode de mise à jour d'Eloquent, les mises à jour par lots peuvent être effectuées comme ce qui suit:

 Model::where('condition')->update(['Champs' => 'valeur']);

Dans cet exemple, le modèle est le modèle cible, la méthode «Where» est utilisée pour filtrer les enregistrements qui répondent aux critères, la méthode «Update» est utilisée pour mettre à jour ces enregistrements, et le `` ['Field' => 'Value'] `est le domaine que vous souhaitez mettre à jour et la nouvelle valeur.

Par exemple, supposons que nous ayons un tableau appelé «utilisateurs» contenant les champs d'identification, de nom et d'âge de l'utilisateur. Si nous voulons mettre à jour l'âge de tous les utilisateurs de plus de 30 à 40 ans, nous pouvons utiliser le code suivant:

 $affected_rows = User::where('age', '>', 30)->update(['age' => 40]);

Ce code met à jour l'âge de tous les utilisateurs de plus de 30 ans dans le tableau des «utilisateurs» à 40 ans et renvoie le nombre de lignes affectées.

Exemples de mises à jour par lots de plusieurs données

Ensuite, jetons un coup d'œil à un exemple de mise à jour par lots plus spécifique:

Supposons que nous ayons un tableau appelé «messages» avec les champs suivants:

  • ID: ID de message
  • Contenu: contenu du message
  • créé_at: temps de création
  • Updated_at: Temps de mise à jour

Supposons que nous voulons remplacer «bonjour» dans tous les contenus de message dans la table «Messages» par «monde». Nous pouvons utiliser le code suivant:

 $affected_rows = Message::where('content', 'like', '%hello%')->update(['content' => DB::raw("REPLACE(content, 'hello', 'world')")]);

Dans cet exemple, nous avons utilisé `` Où ('Content', 'Like', '% Hello%') `Pour filtrer les enregistrements contenant 'Hello' dans tous les contenus et remplacé 'Hello' dans le contenu par 'World' par` Update (['Content' => db :: brut ("Remplace (Content, 'Hello', 'World')") "))`. Cette opération utilise la méthode DB :: RAW, de sorte que la fonction `Remplacer» dans la requête SQL peut être exécutée normalement. Enfin, cette méthode renvoie le nombre de lignes affectées, c'est-à-dire le nombre d'enregistrements mis à jour.

Résumer

Cet article décrit comment mettre à jour par lots plusieurs éléments de données dans Laravel. Grâce à la méthode «Update» d'Elognent et à la méthode «DB :: RAW», nous pouvons lancer efficacement les enregistrements de mise à jour dans la base de données, améliorant ainsi l'efficacité d'exécution du code. Après avoir maîtrisé ces techniques, vous pouvez optimiser les opérations de la base de données et améliorer les performances du système tout en traitant de grandes quantités de données.