Comment condenser les opérations de base de données avec la méthode firstOrNew() de Laravel Eloquent ?

Linda Hamilton
Libérer: 2024-10-20 08:52:02
original
816 Les gens l'ont consulté

How to Condense Database Operations with Laravel Eloquent's firstOrNew() Method?

Fonctionnalité de Laravel Eloquent : créer ou mettre à jour des enregistrements

Une approche abrégée pour les opérations de base de données

Dans la boîte à outils de base de données de Laravel, Eloquent fournit une méthode pratique pour gérer à la fois l'insertion d'enregistrements et les mises à jour simultanément. Cette méthode vous évite d'avoir à écrire du code explicite pour ces opérations.

Création d'un nouvel enregistrement ou mise à jour d'un enregistrement existant :

Imaginez un scénario dans lequel vous devez déterminer s'il faut insérer un nouvel enregistrement ou mettre à jour un existant en fonction de l’existence d’une condition particulière. Traditionnellement, cela nécessiterait des vérifications distinctes de l'existence des enregistrements et des requêtes d'insertion ou de mise à jour ultérieures.

Une solution condensée :

Eloquent de Laravel introduit une approche concise à cette tâche : firstOrNew(). Comme démontré dans l'extrait PHP fourni :

<code class="php">$shopOwner = ShopMeta::where('shopId', '=', $theID)
    ->where('metadataKey', '=', 2001)->first();</code>
Copier après la connexion

Ce code vérifie si un enregistrement existe dans la table ShopMeta avec le shopId et la metadataKey spécifiés. Si aucun enregistrement de ce type n'est trouvé, il renvoie null.

Ajout ou modification de données :

Pour continuer le processus d'insertion/mise à jour :

<code class="php">if ($shopOwner == null) {
    // Insert new record into database
} else {
    // Update the existing record
}</code>
Copier après la connexion

Si $shopOwner est en effet nul, un nouvel enregistrement peut être inséré. Sinon, l'enregistrement existant peut être mis à jour.

Affinage avec firstOrNew() :

Une solution améliorée, comme suggérée par "lu cip", consiste à utiliser la méthode firstOrNew(), qui élimine la nécessité d'une vérification conditionnelle :

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

Avec cette approche mise à jour, si un enregistrement avec le nom spécifié existe, il est récupéré ; sinon, un nouvel enregistrement est créé. Les opérations ultérieures (par exemple, la définition de foo) et la sauvegarde de l'enregistrement sont rationalisées sous un seul appel save().

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!