Doctrine позволяет вам указывать режим гидратации при выполнении запросов, что позволяет вам изменять тип данных возвращаемых результатов.В этом случае вам нужен Query :: HYDRATE_ARRAY.Это не позволяет вам указать это в методе findAll () по умолчанию, найденном в репозиториях.Вам нужно написать свой собственный DQL для него.
Если вам нужен набор объектов в виде массивов:
$query = $em->createQuery('SELECT u FROM User u');
$entites = $query->execute(array(), Query::HYDRATE_ARRAY);
// If you don't have parameters in the query, you can use the getResult() shortcut
$query = $em->createQuery('SELECT u FROM User u');
$entities = $query->getResult(Query::HYDRATE_ARRAY);
Если вам нужен отдельный объект в виде массива, напримердля конкретного идентификатора:
$query = $em->createQuery('SELECT u FROM User u WHERE u.id = ?1');
$query->setParameter(1, $id);
$entity = $query->getSingleResult(Query::HYDRATE_ARRAY);
Эти методы определены в Query и AbstractQuery .