如何从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, s2映射到id, name

您必须在选择的中使用as

使用您的示例=>

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

这将id映射到s1,并将名称映射为s2

我不确定我是否理解你的问题,但如果你想运行一个本机查询,结果是列idname,你可以在查询中替换它们,它们是别名,所以它们可以是你想要的任何东西:

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

相关内容

  • 没有找到相关文章

最新更新