В настоящее время я использую DoctrineMongoDbBundle для запросов к моей базе данных mongodb.mongoDB Symfony2 возвращает loggablecursor вместо моих объектов.
Вот вызов в мой контроллер:
$dm = $this->get('doctrine.odm.mongodb.document_manager');
$entities = $dm->getRepository('MyBundle:Animal')->findBy(array("prop" => "1"));
echo print_r($entities->getQuery());
echo printf(count($entities));
echo get_class($entities);
Тогда я попытался сериализации $ enitities в формате JSON и отправить его клиенту, но он не работал.
В вторит отпечатанные:
Array ([prop] => 1)
101
Doctrine\ODM\MongoDB\LoggableCursor0
Это означает, что запрос является правильным, но количество должно быть «2» и тип должен быть массив животных.
Почему репозитория возвращает LoggableCursor0 вместо массива Animal?
Как он мог вернуть массив животных?
[edit] Что было бы лучшим способом вернуть мой результат в JSON?
Есть ли способ, чтобы получить объекты, как ОРМ делает? Как? –
@ Антон: +1, это мой вопрос –
@ АнтонБабенко. Нет способа. Хотя курсор итерабельен, и вы можете создать свой собственный массив объектов, но в большинстве случаев вам не нужно заботиться об этом. – meze