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 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!