Maison  >  Article  >  développement back-end  >  Comment insérer ou mettre à jour des enregistrements efficacement à l'aide de la méthode firstOrNew() d'Eloquent ?

Comment insérer ou mettre à jour des enregistrements efficacement à l'aide de la méthode firstOrNew() d'Eloquent ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-20 08:47:01433parcourir

How to Insert or Update Records Efficiently Using Eloquent's firstOrNew() Method?

Insertion ou mise à jour d'enregistrements dans Laravel Eloquent

Lorsque vous travaillez avec des bases de données, il est courant de devoir insérer un nouvel enregistrement s'il n'existe pas ou mettre à jour un enregistrement existant si c'est le cas. Dans l'ORM Eloquent de Laravel, cela peut être fait de manière concise en utilisant la méthode firstOrNew().

Syntaxe

$model = Model::firstOrNew($attributes);
  • $attributes : un tableau d'attributs qui doivent être présents dans le premier ou un enregistrement nouvellement créé.

Mise à jour des enregistrements existants

Si l'enregistrement existe déjà dans la base de données, la méthode firstOrNew() renverra une instance de ce modèle. Vous pouvez ensuite modifier ses attributs et l'enregistrer à l'aide de la méthode save().

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

Insertion de nouveaux enregistrements

Si l'enregistrement n'existe pas dans la base de données, la méthode firstOrNew() créera une nouvelle instance du modèle avec les attributs spécifiés. Il insérera ensuite l'enregistrement dans la base de données lorsque vous appellerez la méthode save().

<code class="php">// Insert new record into database</code>

Approche alternative

Dans l'extrait de code fourni, l'approche suivante est également utilisée pour insérer un nouvel enregistrement s'il n'existe pas ou mettre à jour un enregistrement existant s'il existe :

<code class="php">$shopOwner = ShopMeta::where('shopId', '=', $theID)
    ->where('metadataKey', '=', 2001)->first();

if ($shopOwner == null) {
    // Insert new record into database
} else {
    // Update the existing record
}</code>

Cette approche implique d'abord d'interroger la base de données pour récupérer l'enregistrement existant. Si aucun enregistrement n'est trouvé, un nouvel enregistrement est inséré. Sinon, l'enregistrement existant est mis à jour.

Documentation mise à jour

Pour les dernières informations sur la méthode firstOrNew(), reportez-vous à la documentation mise à jour liée ci-dessous.

[Documentation mise à jour Lien](https://laravel.com/docs/8.x/eloquent)

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