Задать вопрос

Как в createQueryBuilder достать данные из ManyToMany?

$qbRows = $this
            ->createQueryBuilder('b')
            ->where('b.id = ' . (int) $id)
            ->select('b.id')
            ->addSelect('b.name')
            ->addSelect('b.Users')
            ->getQuery();

В b.Users должна быть коллекция пользователей. Без указания select (addSelect) достаются все поля, и все ОК. Но при при выборе только некоторых полей, не понятно как вывести поля которые подключаются через связи.
  • Вопрос задан
  • 1934 просмотра
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
skobkin
@skobkin
Гентушник, разработчик на PHP и Symfony.
Если вы достаёте не целую сущность, а только конкретные поля - очевидно, вам нужно делать JOIN и уже по алиасу, который вы назначите в JOIN обращаться ко полям связей.
Ответ написан
by25
@by25
Веб-разработчик
Если выгружать сущности полностью:

$query= $this->
            ->createQueryBuilder()
            ->select('b, users')
            ->from(B::class, 'b')
            ->join('b.users', 'users')
            ->where('b.id = :id')
            ->setParameter('id', $id)
            ->getQuery();


Обращаем внимание на строчку select('b, users')

PS. И Doctrine довольно сложный инструмент, как выше советуют - читайте документацию.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы