我已经彻底搜索了SO和谷歌但是我找不到这个基本问题的答案。
我在Symfony2中有以下实体
ADR\PortalBundle\Account
ADR\UserBundle\User (FOSUserBundle)
每个用户都有一个帐户,一个帐户可以拥有多个用户(所有这些用户似乎都可以在网站的其他位置使用)。
我有以下查询:
$query = $em->createQuery(
'SELECT u, a
FROM ADRUserBundle:User u
JOIN ADRPortalBundle:Account a
WHERE u.id = :userId'
)->setParameter('userId', $this->getUser()->getId());
这会返回单个帐户数据以及所有帐户。
我真正想要的是此特定用户的帐户数据。
推翻了查询,因此FROM
是帐户实体,而JOIN
是用户实体,我反过来,只有一个帐户和数据库中的所有用户。
答案 0 :(得分:1)
这可能是因为您实际上并未连接特定字段上的表。
所以你需要类似的东西(我使用u.account作为引用帐户的用户属性)
JOIN ADRPortalBundle:Account u.account a
您可能还想看看: http://docs.doctrine-project.org/en/2.1/reference/dql-doctrine-query-language.html。