У меня была та же проблема, что и у вас сейчас, и после некоторого исследования я просто нашел решение, которое может вас заинтересовать. Вам нужен ассоциативный массив ключей / значений, а не метод object.findBy (), возвращающий только сущность OBJECT.so вам нужно будет использовать DQL (язык запросов доктрины).
//create a QueryBuilder instance
$qb = $this->_em->createQueryBuilder();
$qb->add('select', 'a')
//enter the table you want to query
->add('from', 'Members a')
->add('where', 'a.id = :id')
//order by username if you like
//->add('orderBy', 'a.username ASC')
//find a row with id=5
->setParameter('id', '5');
query = $qb->getQuery();
//if you dont put 3 or Query::HYDRATE_ARRAY inside getResult() an object is returned and if you put 3 an array is returned
$accounts = $query->getResult(3);
из документации доктрины:
13.7.4. Режимы гидратации
Каждый из режимов гидратации делает предположения о том, как результат
вернулся к земле пользователя. Вы должны знать обо всех деталях, чтобы сделать
лучшее использование различных форматов результата:
Константы для различных режимов гидратации:
Запрос :: HYDRATE_OBJECT
Запрос :: HYDRATE_ARRAY
Запрос :: HYDRATE_SCALAR
Запрос :: HYDRATE_SINGLE_SCALAR
Чтобы узнать больше о 'The Query Builder', пожалуйста, обратитесь к документации doctrine2
Обновление:
Чтобы получить связанные сущности, вам нужно определить выборочные объединения. Вот пример, приведенный в документации доктрины :
$dql = "SELECT b, e, r, p FROM Bug b JOIN b.engineer e ".
"JOIN b.reporter r JOIN b.products p ORDER BY b.created DESC";
$query = $entityManager->createQuery($dql);
$bugs = $query->getArrayResult();
foreach ($bugs AS $bug) {
echo $bug['description'] . " - " . $bug['created']->format('d.m.Y')."\n";
echo " Reported by: ".$bug['reporter']['name']."\n";
echo " Assigned to: ".$bug['engineer']['name']."\n";
foreach($bug['products'] AS $product) {
echo " Platform: ".$product['name']."\n";}
echo "\n";}
Приведенный выше код будет извлекать ваши сущности в виде массивов, и вы можете делать все, что захотите, с помощью $ keys и $ values.
Надеюсь, это поможет ...