Symfony Doctrine: выборка без связи

Lewik

Новичок
Дано:
Сущность А
Сущность Б
Одностороняя связь А->Б

Найти:
DQL или пример qb , который вытащит все A, ссылающиеся на Б

Я вероятно на чем то ооочень простом запнулся, но у меня это ну никак не получается. Я не могу в qb заджоинить, потому что ON строится на A.getБ, которого нет.

Причина, почему нет обратной связи, в том, что Б используется очень много где. И потребуется много методов для каждой "обратки". Глупо выглядит.
 

Lewik

Новичок
... джоины чтобы сджоинить. Ну... ... по id одной сущности и внешний ключ другой сущности.
Через sql это легко решается через join.
Через queryBuilder у меня не получается составить запрос. Т.к. использование join требует наличие прописанной связи.
Сейчас вот подумал что это можно делать через подзапрос, доктрина вроде это разрешает.
 

keltanas

marty cats
Lewik, погоди, сейчас включу свои телепатические способности, узнаю схему твоей базы, конфиги сущностей, и тут же напишу для тебя запрос через кверибилдер...

вот, держи
PHP:
$qb->select('A')->from('A', 'a')->where('a.b_id = :b')->setParameter('b', $b->getId());
 

Lewik

Новичок
Ок. Я запилю репу с этим делом. Чуть позже.
Телепатия, очевидно, верна.
Такой запрос не пройдет =) Разве можно указывать поля таблицы? Как я понял, можно указывать только поля сущности. И просто так с id это сравнить не получилось. Оно ругается, пока не заджоинишь по a.b и после этого можно сделать b.id = :b. Но заджоинить можно только если есть двусторонняя связь, а так у меня нет a.b. Я отражу этот пример в репе.
 

keltanas

marty cats
У тебя связь каким образом происходит? Через какое-то поле, которое отражается через свойство? Ну так сделай выборку по этому свойству.
 
Сверху