2016-09-27 59 views
3

我原来的查询是:学说:没有别名被调用getRootAlias()错误之前设置

Select * from user u 
inner join company c 
on u.company_id = c.id 
where u.id=2 

于是我用它作为:

$em = $this->get('doctrine')->getEntityManager(); 
     $qb = $em->createQueryBuilder(); 

     $qb->select('u') 
      ->from('TemplateManager\Bundle\DocumentGeneratorBundle\Entity\User u') 
      ->innerjoin('u.company') 
      ->where('u.id = ' . $id); 
     $query = $qb->getQuery(); 
     $result = $query->getResult(); 

我得到500与登录以下细节:

[2016-09-27 12:06:34] request.INFO:匹配的路线 “templatemanager_documentgenerator_api_client_find”(参数: “_controller”: “TemplateManager \捆绑\ DocumentGeneratorBundle \控制器\ API \ ClientController :: findAction”, “ID”: “2”, “_route”: “templatemanager_documentgenerator_api_client_find”)[] [] > [2016- 09-27 12:06:34] security.DEBUG:从 会话中读取SecurityContext [] [] > [2016-09-27 12:06:34] security.DEBUG:从用户 提供者重新加载用户。 [] [] > [2016-09-27 12:06:34] security.DEBUG:用户名“admin”已从用户提供商重新加载 。 [] [] > [2016-09-27 12:06:34] request.CRITICAL:未捕获的PHP异常 RuntimeException:“在调用getRootAlias()之前未设置别名。” at //mproject//vendor/doctrine/orm/lib/Doctrine/ORM/QueryBuilder.php line 423 {“exception”:“[object](RuntimeException(code:0):在调用getRootAlias之前没有设置别名 ()。at //myproject//vendor/doctrine/orm/lib/Doctrine/ORM/QueryBuilder.php:423)“} [] > [2016-09-27 12:06:34] security.DEBUG :在 会议撰写的SecurityContext [] []

回答

0

试试这个 加上$ EM-别名> createQueryBuilder();

$em->createQueryBuilder('u'); 

的方式准备好您的查询,以避免SQL注入

$qb->select('u') 
    ->from('User', 'u') 
    ->where('u.id = ?1') 
    ->orderBy('u.name', 'ASC') 
    ->setParameter(1, 100); 

在我自己的项目,我想这和它工作得很好:

$em = $this->get('doctrine')->getEntityManager(); 

$qb = $em->createQueryBuilder('u'); 

$qb->select('u') 
     ->from('INSIDE\Bundle\AdminBundle\Entity\TAdminUser', 'u') 
     ->innerJoin('u.idUser' , 'myalias') 
     ->where('u.idAdminUser = 2'); 

$query = $qb->getQuery(); 
$result = $query->getResult(); 

ID用户是另一个表中没有一个id我们有迁移问题:)

+0

这是一个加入一个 – Volatil3

+0

你是什么意思,它是一个加入吗? – miorey

+0

我需要的查询是SQL JOIN。检查原始查询 – Volatil3