php - Doctrine: No alias was set before invoking getRootAlias() error -
my original query is:
select * user u inner join company c on u.company_id = c.id u.id=2
and made as:
$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();
i 500 following details in log:
[2016-09-27 12:06:34] request.info: matched route "templatemanager_documentgenerator_api_client_find" (parameters: "_controller": "templatemanager\bundle\documentgeneratorbundle\controller\api\clientcontroller::findaction", "id": "2", "_route": "templatemanager_documentgenerator_api_client_find") [] [] > [2016-09-27 12:06:34] security.debug: read securitycontext session [] [] > [2016-09-27 12:06:34] security.debug: reloading user user provider. [] [] > [2016-09-27 12:06:34] security.debug: username "admin" reloaded user provider. [] [] > [2016-09-27 12:06:34] request.critical: uncaught php exception runtimeexception: "no alias set before invoking getrootalias()." @ //myproject//vendor/doctrine/orm/lib/doctrine/orm/querybuilder.php line 423 {"exception":"[object] (runtimeexception(code: 0): no alias set before invoking getrootalias(). @ //myproject//vendor/doctrine/orm/lib/doctrine/orm/querybuilder.php:423)"} [] > [2016-09-27 12:06:34] security.debug: write securitycontext in session [] []
try add alias on $em->createquerybuilder();
$em->createquerybuilder('u');
by way prepare query avoid sql injection
$qb->select('u') ->from('user', 'u') ->where('u.id = ?1') ->orderby('u.name', 'asc') ->setparameter(1, 100);
on own project tried , works well:
$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();
iduser table not id had migration problems :)
Comments
Post a Comment