Как можно сопоставить имена столбцов из запроса 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.

2 ответа

Не уверен, что понимаю ваш вопрос, но если вы хотите запустить собственный запрос с в результате столбцами id а также name, вы можете заменить их в запросе, это псевдонимы, поэтому они могут быть чем угодно:

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

ты должен использовать 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();

это сопоставляет идентификатор с s1 и назовите как s2

Другие вопросы по тегам