Doctrine Symfony2-实体和检索信息之间的语义错误关系

Doctrine Symfony2-实体和检索信息之间的语义错误关系,doctrine,symfony,doctrine-orm,entity-relationship,Doctrine,Symfony,Doctrine Orm,Entity Relationship,我想做些什么 $this->getEntityManager() ->createQuery(' SELECT P.* FROM MyNameSpaceProfileBundle:Tutor T JOIN MyNameSpaceProfileBundle:Person Pe JOIN MyNameSpaceMediaBundle:KidContent KC

我想做些什么

$this->getEntityManager()
->createQuery(' SELECT P.*  
            FROM    MyNameSpaceProfileBundle:Tutor T
                JOIN    MyNameSpaceProfileBundle:Person Pe 
                JOIN    MyNameSpaceMediaBundle:KidContent KC
                JOIN    MyNameSpaceMediaBundle:Post P
                WHERE T.id = :id'
)->setParameter('id', $pId);
但我有这样的错误:


[语义错误]第0行,第128列“Pe”附近:错误:标识 变量MyNameSpaceProfileBundle:连接路径表达式中使用的人 但之前没有定义。500内部服务器错误-QueryException

我遵循了symfony2网站上的教程

需要帮忙吗? 再见


我不知道

尝试这样做可以让它工作:

$this->getEntityManager() ->createQuery(
  'SELECT P 
     FROM '.$this->_entityName.' P 
     JOIN P.details KC 
     JOIN KC.creator T 
     JOIN T.information Pe 
    WHERE Pe.id = :id' )->setParameter('id', $pId);

在doctrine1.2中,你会做
T.Person Pe
,在doctrine2中不是一样吗?你的意思是->创建查询('SELECT P.*FROM MyNameSpaceProfileBundle:Tutor T JOIN T.Person Pe JOIN T.KidContent KC JOIN KC.Post P WHERE T.id=:id')->setParameter('id',$pId);?我尝试过:$this->getEntityManager()->createQuery('SELECT P.*FROM'.$this->\u entityName.'P JOIN P.details KC JOIN KC.creator T JOIN T.information Pe WHERE Pe.id=:id')->setParameter('id',$pId);但仍有错误它不能是完全相同的错误,因为错误包含“*”附近第17列第0行“MyNameSpaceProfileBundle:Person”[语义错误]:错误:类MyNamespace\MediaBundle\Entity\Post没有名为*