Maison  >  Article  >  développement back-end  >  Comment effectuer des opérations Upsert à l'aide de l'ORM éloquent de Laravel ?

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

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-20 08:44:02481parcourir

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>

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!

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