Comment optimiser efficacement les opérations CRUD à l'aide de la méthode firstOrNew() de Laravel Eloquent ?

Mary-Kate Olsen
Libérer: 2024-10-20 08:52:31
original
642 Les gens l'ont consulté

How to Effectively Optimize CRUD Operations Using Laravel Eloquent's firstOrNew() Method?

Optimisation des opérations CRUD avec Laravel Eloquent

Lorsque vous travaillez avec une base de données dans Laravel, il est courant d'insérer ou de mettre à jour des enregistrements. Pour y parvenir, les développeurs ont souvent recours à des instructions conditionnelles qui vérifient si un enregistrement existe avant de décider d'effectuer une insertion ou une mise à jour.

La méthode firstOrNew()

Heureusement, Eloquent fournit une solution plus efficace grâce à la méthode firstOrNew(). Cette méthode vérifie l'existence d'un enregistrement en fonction de critères spécifiés et renvoie le premier enregistrement correspondant s'il est trouvé ; sinon, il crée une nouvelle instance du modèle.

Exemple d'utilisation

Considérez l'exemple suivant :

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

if ($shopOwner->exists) {
    // Update the existing record
} else {
    // Insert a new record
}</code>
Copier après la connexion

Dans cet exemple, le La méthode firstOrNew() est utilisée pour rechercher un enregistrement ShopMeta basé sur shopId et metadataKey. Si l'enregistrement existe, le bloc if est exécuté et l'enregistrement existant est mis à jour. Sinon, le bloc else est exécuté et un nouvel enregistrement est inséré.

Exemple étendu

Voici un exemple plus complet qui met en valeur la puissance de firstOrNew() :

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

Documentation mise à jour

Veuillez noter que le lien de documentation fourni dans la réponse n'est plus à jour. Pour la dernière version de Laravel, reportez-vous à la documentation suivante :

[Documentation Laravel mise à jour](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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!