Вывести значение внешнего ключа в Symfony в Doctrine в QueryBuilder-е

Допустим есть таблицы Post и Tag со следующей структурой.

Author

Название поля Тип поля Описание поля
id autoincrement id записи
name varchar(255) Имя автора

Post

Название поля Тип поля Описание поля
id autoincrement id записи
title varchar(255) Название поста
text text Текст поста
author_id FK(foreign key, int) Id автора

И теперь нужно, например, в запросе вывести данные поста вместе с автором, значение которого представляет из себя внешний ключ. То есть в сущности это поле представляет из себя связь relation типа ManyToOne с названием author(то есть у одного поста может быть один автор, у одного автора может быть много постов). Сделать это можно следующим образом:

	return $this->createQueryBuilder('p')
            ->select('p.id', 'p.title', 'IDENTITY(p.author) as author_id')
            ->getQuery()
            ->getResult()
            ;
	

с помощью недокументированной функции IDENTITY, которая позволяет выбрать значение внешнего ключа в запросе.

Полезные ссылки

Тэги:

Тэг в списке: