首页 > 解决方案 > 如何从 Doctrine sql 查询中映射列名?

问题描述

我使用查询生成器创建了一个查询,如下所示:

$qb = $em->createQueryBuilder();
$qb->select(['u.id', 'u.name'])
   ->from(User::class, 'u')
   ->where('u.active = 1')
;
$sql = $qb->getQuery()->getSql();

结果如下所示:

SELECT u1_.user_id as s1, u1_.full_name as s2 FROM users u1_ WHERE u1_.is_active = 1

我想将其作为本机查询执行,但我必须找出如何映射s1, s2id, name.

标签: doctrine-ormdoctrinedoctrine-querydoctrine-dbal

解决方案


不确定我是否理解您的问题,但如果您想在结果中使用列id和运行本机查询name,您可以在查询中替换它们,它们是别名,因此它们可以是您想要的任何东西:

SELECT u.user_id as id, u.full_name as name FROM users u WHERE u.is_active = 1

推荐阅读