Maison  >  Article  >  développement back-end  >  Comment implémenter les jointures à gauche dans la doctrine de récupération des antécédents de crédit ?

Comment implémenter les jointures à gauche dans la doctrine de récupération des antécédents de crédit ?

DDD
DDDoriginal
2024-10-29 21:52:02910parcourir

How to Implement Left Joins in Doctrine for Credit History Retrieval?

Comment effectuer des jointures à gauche dans Doctrine

Dans votre fonction getHistory(), vous tentez de récupérer l'historique de crédit d'un utilisateur . Cependant, la syntaxe initiale de votre clause de jointure a entraîné une erreur.

Pour effectuer une jointure gauche dans Doctrine, vous pouvez utiliser la syntaxe suivante :

<code class="php">$qb
    ->select('a', 'u')
    ->from('Credit\Entity\UserCreditHistory', 'a')
    ->leftJoin('a.user', 'u')
    ->where('u = :user')
    ->setParameter('user', $users)
    ->orderBy('a.created_at', 'DESC');</code>

Ici, a représente l'alias pour l’entité UserCreditHistory, et u représente l’alias de l’entité User rejointe. En utilisant la méthode leftJoin(), vous spécifiez que vous souhaitez inclure les lignes de la table User qui ne correspondent pas à la table UserCreditHistory.

Alternativement, si vous n'avez pas d'association entre les deux entités, vous pouvez utiliser la syntaxe suivante :

<code class="php">$qb
    ->select('a', 'u')
    ->from('Credit\Entity\UserCreditHistory', 'a')
    ->leftJoin(
        'User\Entity\User',
        'u',
        \Doctrine\ORM\Query\Expr\Join::WITH,
        'a.user = u.id'
    )
    ->where('u = :user')
    ->setParameter('user', $users)
    ->orderBy('a.created_at', 'DESC');
````
</code>

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