Возврат массива с помощью метода Doctrine findBy

Я использую метод Doctrine findBy(), но хочу, чтобы вместо объектов возвращались массивы. Это мой запрос:

$results = $em
    ->getRepository('xBundle:x')
    ->findBy(
        array(),
        array('name' => 'ASC')
);

Я провел небольшое исследование и обнаружил, что HYDRATE_ARRAY - это способ сделать это, но я понятия не имею, как включить это в метод findBy().

РЕДАКТИРОВАТЬ Мой запрос как таковой возвращает объекты. Я не хочу создавать какие-либо методы в своем репозитории; Я хочу просто отредактировать существующий запрос, чтобы он возвращал массивы.

Вы не можете этого сделать, не создав метод в репозитории

Denis Alimov 02.04.2018 09:46
stackoverflow.com/questions/42910599/…
Denis Alimov 02.04.2018 09:46

Почему явная потребность в массивах вместо объектов? В любом случае, вы можете просто преобразовать объекты в массивы ($array = (array) $object;) в php: Ссылка на сайт. См. Параграф «Преобразование в массив» в официальном документы для заметных исключений: целочисленные свойства недоступны; к частным переменным добавляется имя класса перед именем переменной; защищенные переменные имеют ''добавлено к имени переменной. Эти добавленные значения имеют нулевые байты с обеих сторон. Это может привести к неожиданному поведению:

ccKep 02.04.2018 13:34
Структурированный массив Numpy
Структурированный массив Numpy
Однако в реальных проектах я чаще всего имею дело со списками, состоящими из нескольких типов данных. Как мы можем использовать массивы numpy, чтобы...
T - 1Bits: Генерация последовательного массива
T - 1Bits: Генерация последовательного массива
По мере того, как мы пишем все больше кода, мы привыкаем к определенным способам действий. То тут, то там мы находим код, который заставляет нас...
Что такое деструктуризация массива в JavaScript?
Что такое деструктуризация массива в JavaScript?
Деструктуризация позволяет распаковывать значения из массивов и добавлять их в отдельные переменные.
1
4
4 574
1

Ответы 1

создать функцию в репозитории, а затем создать конструктор запросов

/**
 * @return array
 */
public function getArray()
{
    return $this
        ->createQueryBuilder('x')
        ->orderBy('x.name', 'DESC')
        ->getQuery()
        ->getArrayResult();
}

доступ к вашей функции из контроллера

$results = $this->getDoctrine()->getRepository('xBundle:x')->getArray();

Подробнее здесь

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