2015-07-09 3 views
0

У меня есть 3 объекта: Пользователь, ImaginaryBankAccount и перезарядка. Один пользователь имеет один ImaginaryBankAccount и ImaginaryBankAccount может иметь более одного перезарядки. И я хочу выбрать из DB all Recharges, который принадлежит одному пользователю.Symfony Doctrine получает сущность через другое лицо

У меня есть этот запрос:

$resResults = $query->getResult(); 
$query = $em->createQuery('SELECT rec 
          FROM AppBundle:Recharge rec 
          WHERE rec.dateTime > :tresholdDate 
          AND rec.imaginaryBankAccount.user = :user 
          ORDER BY rec.dateTime' 
)->setParameter('tresholdDate', $dateXDaysBack) 
->setParameter('user', $filter->getUser()); 
$recResults = $query->getResult(); 

Но он бросает ошибку:

[Semantical Error] line 0, col 223 near 'user = :user ': Error: Class AppBundle\Entity\Recharge has no field or association named imaginaryBankAccount.user

Как я могу достичь своей цели с Doctrine2?

ответ

1

Вы должны добавить JOIN пункт с imaginaryBankAccount соотношением как это:

SELECT rec 
FROM AppBundle:Recharge rec 
JOIN rec.imaginaryBankAccount i 
WHERE rec.dateTime > :tresholdDate 
AND i.user = :user 
ORDER BY rec.dateTime 
Смежные вопросы