Doctrine Запрос обратного соединения? - PullRequest
0 голосов
/ 11 февраля 2020

BDD Schema

У меня есть эти отношения.

Мне нужно получить все содержимое, но сначала нужно заказать 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, поскольку контент не является владельцем отношения.

Нужно создать двунаправленное отношение или есть способ заставить его работать?

1 Ответ

1 голос
/ 11 февраля 2020

Вы можете создать запрос в 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

...