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

Susan Sarandon
Libérer: 2024-10-20 08:47:01
original
494 Les gens l'ont consulté

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);
Copier après la connexion
  • $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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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!

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