gpt4 book ai didi

php - Symfony2 的 mongoDB 返回一个 loggablecursor 而不是我的实体

转载 作者:可可西里 更新时间:2023-11-01 09:19:57 26 4
gpt4 key购买 nike

我目前使用 DoctrineMongoDbBundle 向我的 mongodb 数据库发出请求。

这是我 Controller 中的调用:

    $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 并将其发送给客户端,但没有成功。

打印的 echo :

Array ( [prop] => 1 ) 
101
Doctrine\ODM\MongoDB\LoggableCursor0

这意味着查询正确,但计数应为“2”,类型应为 Animal 数组。

为什么存储库返回 LoggableCursor0 而不是 Animal 数组?

[编辑]它怎么会返回一个 Animal 数组?

[编辑] 以 JSON 格式返回结果的最佳方式是什么?

最佳答案

使用方法toArray()。像这样:

$dm = $this->get('doctrine.odm.mongodb.document_manager');
$entities = $dm->getRepository('MyBundle:Animal')->findBy(array("prop" => "1"))->toArray();

如果您需要获取实体数组,请使用 array_values() 函数。像这样:

$entities = array_values($entities);

关于php - Symfony2 的 mongoDB 返回一个 loggablecursor 而不是我的实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9958647/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com