Maison  >  Article  >  développement back-end  >  Comment optimiser efficacement les opérations CRUD à l'aide de la méthode firstOrNew() de Laravel Eloquent ?

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

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-20 08:52:31645parcourir

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>

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>

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!

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