BDD Schema

J'ai ces relations.

J'ai besoin de récupérer tout le contenu mais de le commander d'abord par star.content_Idcontent.

Il fonctionne avec Easy SQL :

SELECT content.idcontent
FROM content
LEFT JOIN star ON content.idcontent = star.content_Idcontent 
ORDER BY star.content_Idcontent DESC,content.idcontent

Mais je ne sais pas comment faire avec Doctrine car le contenu n'est pas le propriétaire de la relation.

Dois-je créer une relation bidirectionnelle ou existe-t-il un moyen de la faire fonctionner ?

0
L01C 11 févr. 2020 à 19:23

1 réponse

Meilleure réponse

Vous pouvez créer une requête dans ContentRepository comme :

$qb = $this
    ->createQueryBuilder('content')
    ->join(
         'App\Entity\Star',
         'star',
         \Doctrine\ORM\Query\Expr\LeftJoin::WITH,
         'content.idcontent = star.content_Idcontent '
         )
    ->orderBy('star.content_Idcontent', 'DESC')
;

$qb->getResult();

En supposant que votre entité Star est située dans App\Entity\Star

1
fvhde.exe 11 févr. 2020 à 17:09