Symfony2 / Doctrine:select()和getResults()不能使用getManager()

时间:2014-09-20 14:13:49

标签: symfony doctrine-orm orm entity entitymanager

我有这个问题...当我尝试使用getEntityManager()时,据说它已经被删除了。似乎它在较新的Symfony2版本中不可用。

现在当我使用getManager()时,可以说在类中找不到select()和getQuery()。 任何想法如何管理?顺便说一句,我在控制器工作。

$em = $this->getDoctrine()->getManager();
$queryBuilder = $em->createQueryBuilder();

$queryBuilder->select('Project')
    ->from('ProjectProjectBundle:Profiles', 'Project')
    ->where('Project.email', $data['email']);

$profile = $queryBuilder->getQuery()->getResult();

1 个答案:

答案 0 :(得分:2)

我认为,最好的做法是通过存储库而不是配置queryBuilder

检查以下内容:

$em = $this->getDoctrine()->getManager();
$project_repo = $em->getRepository('ProjectProjectBundle:Profiles');

$profile = $project_repo->createQueryBuilder('project')
        ->where('project.email = :email')
        ->setParameter('email', $data['email'])            
        ->getQuery()->getResult();