学说查询反向连接?

Doctrine Query reverse join?

我有这些关系。

我需要检索所有内容,但请先按 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 做,因为内容不是关系的所有者。

我必须创建双向关系还是有办法让它发挥作用?

您可以在 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