php – Doctrine:在调用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('TemplateManagerBundleDocumentGeneratorBundleEntityUser u') ->innerjoin('u.company') ->where('u.id = ' . $id); $query = $qb->getQuery(); $result = $query->getResult(); 我在日志中获得500以下的详细信息:
解决方法
试试这个
在$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('INSIDEBundleAdminBundleEntityTAdminUser','u') ->innerJoin('u.idUser','myalias') ->where('u.idAdminUser = 2'); $query = $qb->getQuery(); $result = $query->getResult(); idUser是另一个表不是我们有迁移问题的id (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |