首页 > 解决方案 > Doctrine Query 反向连接?

问题描述

BDD 模式

我有这些关系。

我需要检索所有内容,但star.content_Idcontent首先要排序。

它适用于简单的 SQL:

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

但我不知道如何用 Doctrine 来做,因为内容不是关系的所有者。

我必须创建一个双向关系还是有办法让它工作?

标签: symfonydoctrine-ormdoctrinedoctrine-query

解决方案


您可以在 ContentRepository 中创建查询,例如:

$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();

假设您的实体Star位于App\Entity\Star


推荐阅读