Comment effectuer des opérations Upsert à l'aide de l'ORM éloquent de Laravel ?

Mary-Kate Olsen
Libérer: 2024-10-20 08:44:02
original
548 Les gens l'ont consulté

How to Perform Upsert Operations Using Laravel's Eloquent ORM?

Upserting avec l'ORM éloquent de Laravel

Dans le mappage objet-relationnel (ORM) éloquent de Laravel, il est souvent nécessaire de créer un nouvel enregistrement s'il n'existe pas, ou mettre à jour un enregistrement existant si c'est le cas.

Qu'est-ce que l'Upserting ?

L'Upserting est un terme utilisé pour décrire la combinaison d'opérations d'insertion et de mise à jour. en une seule commande. Dans le contexte d'une base de données, l'upserting vous permet d'effectuer une opération d'insertion ou de mise à jour selon qu'un enregistrement avec des critères spécifiques existe ou non dans la table.

Effectuer des opérations d'upsert

Dans Laravel Eloquent, l'insertion peut être réalisée en utilisant la méthode firstOrNew. Cette méthode prend un tableau de critères comme argument et renvoie soit un modèle existant si un enregistrement correspondant aux critères est trouvé, soit une nouvelle instance de modèle si aucun enregistrement correspondant n'existe.

Exemple : insertion d'un utilisateur Enregistrer

Considérez un scénario dans lequel vous souhaitez créer un nouvel utilisateur s'il n'en existe pas, ou mettre à jour un utilisateur existant s'il en existe un. Voici un exemple :

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

Dans cet exemple, la méthode firstOrNew vérifie si un utilisateur avec le nom spécifié existe déjà dans la base de données. S'il existe, le modèle existant est renvoyé. Sinon, une nouvelle instance de modèle est créée et renvoyée.

Lien de documentation mis à jour :

Pour les dernières informations sur l'insertion dans Laravel, reportez-vous à la documentation officielle ici : [ Lien Docs mis à 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