Php Symfony2/Doctrine2:我想从用户信息中获取数据

Php Symfony2/Doctrine2:我想从用户信息中获取数据,php,symfony,doctrine-orm,Php,Symfony,Doctrine Orm,与主题相关的用户可以获取 My\SampleBundle\Entity\Subject: // ... manyToOne: author: targetEntity: My\UserBundle\Entity\User joinColumn: name: owner referencedColumnName: id 相反,我应该如何从用户信息中获

与主题相关的用户可以获取

My\SampleBundle\Entity\Subject:

    // ...

    manyToOne:
        author:
            targetEntity: My\UserBundle\Entity\User
            joinColumn:
                name: owner
                referencedColumnName: id
相反,我应该如何从用户信息中获取主题

例如,用户列表页面中的查询

$query = $this->getEntityManager()
              ->createQuery('
                  SELECT s, a
                  FROM MySampleBundle:Subject s
                  LEFT JOIN s.author a
                  WHERE s.author = :author
                  GROUP BY s.title'
              )
              ->setParameter("author", $author);
在这个时候,我也想得到一个相关课题的数据

我使用FOSUserBundle。
这是一个只需更正My\UserBundle\Entity的问题吗?

还是orm设置阶段的错误?

我修改的程序

步骤:1添加到我的\UserBundle\Entity\User

$query = $this->getEntityManager()
              ->createQuery('
                  SELECT u
                  FROM MyUserBundle:User u
                  GROUP BY u.username'
              );
第2步:添加“反转者”

/**
 * @ORM\OneToMany(targetEntity="My\SampleBundle\Entity\Subject", mappedBy="author")
 */
private $subjects;

/**
 * Get subjects
 *
 * @return Doctrine\Common\Collections\Collection 
 */
public function getSubjects()
{
    return $this->subjects;
}
步骤:3查询

My\SampleBundle\Entity\Subject:
    type: entity

    // ...

    manyToOne:
        author:
            targetEntity: My\UserBundle\Entity\User
            inversedBy: subjects
            joinColumn:
                name: owner
                referencedColumnName: id
轻松获取数据。 但这并不是完美的解决方案

当连接表增加时,它停止应答,并且它将一直处于加载状态。
我认为数据不一定太重。
这个问题还不清楚

另一个问题的例子

$query = $this->getEntityManager()
              ->createQuery('
                  SELECT u, s
                  FROM MyUserBundle:User u
                  LEFT JOIN u.subjects s
                  ORDER BY u.username'
              );

请在下面添加您的解决方案作为答案。简要解释一下你改变了什么,以及这是如何解决的。这将使它成为一个完美的问答条目。如果遇到任何问题,请告诉我。是的,回答你自己的问题是可以的(然后接受答案)。好的,这会增加课文的内容。但这并不是完美的解决方案。轻松获取数据。然而,当连接表增加时,它停止应答,并且它将一直处于加载状态。我认为数据不一定太重。问题尚未被理解。即使您对答案不是100%满意,也请不要编辑您的问题,而是将其添加为以下答案(新的空框)。在你回答了你的问题并且过了一段时间后,你可以接受它作为答案,它将标记你的问题为“已解决”。至少对于其他用户来说,问题和答案更为明确。这甚至可能会吸引其他人留下另一个答案。好吧,我会这么做。谢谢你的建议,那是我的想象。其中还涉及到一个页面函数,我认为这是因为数据太多了。我认为基础数据采集现在可以了。
$query = $this->getEntityManager()
              ->createQuery('
                  SELECT u, s, a, c, i
                  FROM MyUserBundle:User u
                  LEFT JOIN u.subjects s
                  LEFT JOIN u.articles a
                  LEFT JOIN u.comments c
                  LEFT JOIN u.images i
                  // etc...
                  // It will be in the state of loading all the time
                  // when join table increases.
                  ORDER BY u.username'
              );