2016-09-27 39 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