Comment insérer ou mettre à jour conditionnellement des enregistrements avec Laravel Eloquent ?

Susan Sarandon
Libérer: 2024-10-20 08:45:30
original
499 Les gens l'ont consulté

How to Conditionally Insert or Update Records with Laravel Eloquent?

Création ou mise à jour d'enregistrements avec Laravel Eloquent

L'ORM Eloquent de Laravel fournit une méthode pratique pour insérer de nouveaux enregistrements ou mettre à jour des enregistrements existants. Cette méthode est particulièrement utile lorsque vous devez insérer ou mettre à jour conditionnellement un enregistrement selon qu'il existe déjà dans la base de données.

Une approche de cette tâche consiste à utiliser deux requêtes distinctes pour vérifier l'existence d'un enregistrement et puis insérez-le ou mettez-le à jour. Cependant, Laravel propose une solution plus concise et efficace en utilisant la méthode firstOrNew.

La méthode firstOrNew prend un tableau d'attributs en entrée. Si un enregistrement correspondant à ces attributs existe déjà dans la base de données, il sera récupéré et renvoyé. Sinon, une nouvelle instance du modèle sera créée.

Pour illustrer, considérons l'exemple suivant :

<code class="php">$user = User::firstOrNew(array('name' => Input::get('name')));</code>
Copier après la connexion

Si un utilisateur avec le nom spécifié existe déjà, la variable $user sera référencer l’enregistrement existant. Sinon, une nouvelle instance du modèle User sera créée.

Une fois que vous avez une référence à l'enregistrement, vous pouvez mettre à jour ses attributs si nécessaire. Par exemple :

<code class="php">$user->foo = Input::get('foo');</code>
Copier après la connexion

Enfin, vous pouvez enregistrer les modifications apportées à la base de données à l'aide de la méthode de sauvegarde :

<code class="php">$user->save();</code>
Copier après la connexion

Cette approche fournit un moyen propre et simple d'insérer ou de mettre à jour des enregistrements dans Laravel. Cela élimine le besoin de plusieurs requêtes et garantit que l'enregistrement est toujours à jour.

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!

source:php
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal