Доктрина: гидратация моделей из необработанного SQL

У меня есть следующий индивидуальный запрос. Я знаю, что он простой, поэтому его также можно использовать как DQL, но у меня есть и более сложные. Но я хочу знать, как это сделать даже с более сложными запросами.

select j.*
from `shop`.`jobs` j
-- 2 joins
where j.`active` = true 
order by j.`priority` desc, j.`created` asc 

Обязательно есть модель Job.

Что я хочу:

Массив экземпляров из класса Job с использованием необработанного sql. Нравится:

array (6) {
    [0] => Job#12 (8) {
      ...
    }
    [1] => Job#13 (8) {
      ...
    }
    [2] => Job#14 (8) {
      ...
    }
    [3] => Job#16 (8) {
      ...
    }
    [4] => Job#17 (8) {
      ...
    }
    [5] => Job#18 (8( {
      ...
    }
}

Мне непонятно, о чем вы здесь спрашиваете! Может быть, вы показали нам, что это дает, а затем скажете, что вы на самом деле хотите произвести.

RiggsFolly 02.09.2018 14:43

чтобы улучшить ваш опыт работы с SO, прочтите, как задать По теме вопроса, Контрольный список вопросов и идеальный вопрос и как создать Минимальный, полный и проверяемый пример

RiggsFolly 02.09.2018 14:44

Я записал то, что хочу, но потом поясню.

Zoltán Fekete 02.09.2018 14:49
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
3
658
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Нашел! Через функцию createNativeQuery EntityManager. А для RSM мне нужно использовать класс ResultSetMappingBuilder.

$rsm = new \Doctrine\ORM\Query\ResultSetMappingBuilder($this->getEntitiyManager());
$rsm->addRootEntityFromClassMetadata(\Path\To\Model::class, 'alias');

$nativeQuery = $this->getEntitiyManager()->createNativeQuery('-- query--', $rsm);

$nativeQuery->getResult();

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