"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > 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 ?

Publié le 2024-11-06
Parcourir:141

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 :

$shopOwner = ShopMeta::where('shopId', '=', $theID)
    ->where('metadataKey', '=', 2001)
    ->firstOrNew();

if ($shopOwner->exists) {
    // Update the existing record
} else {
    // Insert a new record
}

Dans cet exemple, 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() :

$user = User::firstOrNew(array('name' => Input::get('name')));
$user->foo = Input::get('foo');
$user->save();

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)

Déclaration de sortie Cet article est réimprimé à l'adresse : 1729385416. En cas d'infraction, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3