Maison > base de données > tutoriel mysql > Astuce Laravel : où est la relation ou où ?

Astuce Laravel : où est la relation ou où ?

Barbara Streisand
Libérer: 2025-01-17 12:02:12
original
117 Les gens l'ont consulté

Plongez dans Laravel Eloquent : exploration whereRelation et ses applications pratiques

Cet article explore l'ORM éloquent de Laravel, en se concentrant sur la méthode whereRelation et en la comparant à l'ancienne méthode whereHas. Nous examinerons ses forces et ses limites, vous guidant vers une utilisation optimale.

Scénario : Récupération des utilisateurs avec des commandes terminées. Avant Laravel 8, whereHas était la norme pour interroger les colonnes de table associées. Laravel 8 a introduit whereRelation, offrant une syntaxe plus concise.

Laravel Tip: whereHas or whereRelation?

La syntaxe améliorée est indéniablement plus propre !

Performances et limites : une idée fausse courante est que whereRelation surpasse whereHas. Cependant, l'analyse révèle que les deux génèrent des requêtes SQL identiques :

whereHas Requête :

<code class="language-sql">select * from `users` where exists 
  (
    select * from `orders` 
    where `users`.`id` = `orders`.`created_by` 
    and `status` = ? 
    and `orders`.`deleted_at` is null
  ) 
and `users`.`deleted_at` is null</code>
Copier après la connexion
Copier après la connexion

whereRelation Requête :

<code class="language-sql">select * from `users` where exists 
  (
    select * from `orders` 
    where `users`.`id` = `orders`.`created_by` 
    and `status` = ? 
    and `orders`.`deleted_at` is null
  ) 
and `users`.`deleted_at` is null</code>
Copier après la connexion
Copier après la connexion

La principale différence réside dans la fonctionnalité. whereRelation est limité à des conditions uniques sur la table associée, tandis que whereHas prend en charge plusieurs conditions au sein d'une seule sous-requête. whereRelation créerait une sous-requête distincte pour chaque condition, la rendant inefficace pour plusieurs critères.

Laravel Tip: whereHas or whereRelation?

Choisir la bonne méthode Eloquent est crucial pour la lisibilité et l'efficacité du code. Tenez compte de la complexité de votre requête avant de sélectionner whereHas ou whereRelation. Bon codage ! ?

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.cn
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