如何使用DQL查询从symfony2博客检索类别?

如何使用DQL查询从symfony2博客检索类别?,symfony,doctrine-orm,dql,Symfony,Doctrine Orm,Dql,我已经在symfony2中创建了一个应用程序。到目前为止,我有一个对用户进行身份验证的实体用户,一个实体来宾和一个类别 用户与来宾有一个OneToMany关系,该关系保留来宾(用于事件),将Users.id映射到Guests.user\u id变量 用户也因为同样的原因与类别有一个共同的关系 客人与类别有很多关系,因为许多类别中有许多客人,许多类别中有许多客人 我已经创建了所有内容,CRUD操作成功地向我显示了用户添加的所有来宾。我想添加每个来宾都属于视图操作的类别 我很困惑。我已进行自定义查询

我已经在symfony2中创建了一个应用程序。到目前为止,我有一个对用户进行身份验证的实体用户,一个实体来宾和一个类别

用户来宾有一个OneToMany关系,该关系保留来宾(用于事件),将Users.id映射到Guests.user\u id变量

用户也因为同样的原因与类别有一个共同的关系

客人类别有很多关系,因为许多类别中有许多客人,许多类别中有许多客人

我已经创建了所有内容,CRUD操作成功地向我显示了用户添加的所有来宾。我想添加每个来宾都属于视图操作的类别

我很困惑。我已进行自定义查询,以检索登录用户的所有来宾:

public function indexAction()
    {
       $user = $this->get('security.context')->getToken()->getUser();
       $userId = $user->getId();

       $em = $this->getDoctrine()->getEntityManager();
       $query = $em->createQuery("SELECT g
                                  FROM Acme\SomethingBundle\Entity\Guest g
                                  INNER JOIN g.user u
                                  WHERE u.id = :userId
                                  ORDER BY g.surname ASC");
        $query->setParameter('userId', $userId); 
        $entities = $query->getResult();

        return $this->render('AcmeSomethingBundle:Guest:index.html.twig', array(
            'entities' => $entities
        ));
    }
如果我尝试将类别实体添加到查询中,则会出现异常:

public function indexAction()
        {
           $user = $this->get('security.context')->getToken()->getUser();
           $userId = $user->getId();

           $em = $this->getDoctrine()->getEntityManager();
           $query = $em->createQuery("SELECT g , c
                                      FROM Acme\SomethingBundle\Entity\Guest g,
                                           Acme\SomethingBundle\Entity\Category c
                                      INNER JOIN g.user u
                                      WHERE u.id = :userId
                                      ORDER BY g.surname ASC");
            $query->setParameter('userId', $userId); 
            $entities = $query->getResult();

            return $this->render('AcmeSomethingBundle:Guest:index.html.twig', array(
                'entities' => $entities
            ));
        }
请帮忙。我已经试着让它工作了6个小时了(在一个系列:)

查询是对的,错误的是细枝编码。我必须创建一个循环,因为类别是一个数组

{% for category in entity.categories %}
{{ category.name }}
{% endfor %}
查询是对的,错误的是细枝编码。我必须创建一个循环,因为类别是一个数组

{% for category in entity.categories %}
{{ category.name }}
{% endfor %}

SQLSTATE[42S22]:未找到列:1054子句“500内部服务器错误-PDOExceptionary运行”php应用程序/控制台原则:架构:更新-强制“无需更新-您的数据库已与当前实体元数据同步”中的未知列“g0.user_id”。我相信我的查询实际上是错误的。我需要额外的左联接吗?SQLSTATE[42S22]:未找到列:1054未知列“g0”。在“on”子句“500内部服务器错误-PDOexceptionty”中运行“php应用程序/控制台原则:schema:update--force”无需更新-您的数据库已与当前实体元数据同步。我相信我的查询实际上是错误的。我需要额外的左连接吗?