Я использую метод Doctrine findBy(), но хочу, чтобы вместо объектов возвращались массивы. Это мой запрос:
$results = $em
->getRepository('xBundle:x')
->findBy(
array(),
array('name' => 'ASC')
);
Я провел небольшое исследование и обнаружил, что HYDRATE_ARRAY - это способ сделать это, но я понятия не имею, как включить это в метод findBy().
РЕДАКТИРОВАТЬ Мой запрос как таковой возвращает объекты. Я не хочу создавать какие-либо методы в своем репозитории; Я хочу просто отредактировать существующий запрос, чтобы он возвращал массивы.
Вы не можете этого сделать, не создав метод в репозитории
Почему явная потребность в массивах вместо объектов? В любом случае, вы можете просто преобразовать объекты в массивы ($array = (array) $object;) в php: Ссылка на сайт. См. Параграф «Преобразование в массив» в официальном документы для заметных исключений: целочисленные свойства недоступны; к частным переменным добавляется имя класса перед именем переменной; защищенные переменные имеют ''добавлено к имени переменной. Эти добавленные значения имеют нулевые байты с обеих сторон. Это может привести к неожиданному поведению:



создать функцию в репозитории, а затем создать конструктор запросов
/**
* @return array
*/
public function getArray()
{
return $this
->createQueryBuilder('x')
->orderBy('x.name', 'DESC')
->getQuery()
->getArrayResult();
}
доступ к вашей функции из контроллера
$results = $this->getDoctrine()->getRepository('xBundle:x')->getArray();
Подробнее здесь
Возможный дубликат Как вернуть массив, а не объект с помощью метода doctrine findOneBy в symfony2?