【发布时间】:2014-05-31 21:14:16
【问题描述】:
我正在尝试将 apigility 与教义的 mongodb odm 一起使用。
我已经设置了我的文档并按照应有的方式配置了学说模块。
我已经(手动)插入了一个文档到 mongo,并定义了一个基于代码的 rest 服务,它的“fetch”方法(在资源类中)返回文档的存储库“find”返回值。
当我调用端点(没有 ID)时,我得到了我插入的单个文档的数组,但它没有正确显示:
{
"_links": {
"self": {
"href": "http://localhost:8888/posts"
}
},
"_embedded": {
"posts": [
{
"\u0000MyApp\\Document\\Post\u0000id": "5389db47075000812e55bd7d",
"\u0000MyApp\\Document\\Post\u0000title": "My Post",
"\u0000MyApp\\Document\\Post\u0000description": "This is my post",
"_links": {
"self": {
"href": "http://localhost:8888/posts/1"
}
}
}
]
},
"total_items": 1
}
这个输出有(至少)两个问题:
- 每个属性的键都有奇怪的格式。它包含带有文档名称的完整命名空间,以及 NULL 的 utf8 代码
- “self”链接未使用正确的 id(它使用数字 1 而不是 mongodb 自动生成的 id)。
出了什么问题/遗漏了什么?
【问题讨论】:
-
您确定您的
App\Document\Post实体在zf-rest的配置(在控制器的entity_name键下)和zf-hal的metadata_map配置中声明吗?如果一切正常,可以更改实体的水合器(zf-hal.metadata_map.App\Document\Post.hydrator,如果没有,则zf-hal.renderer.default_hydrator)和/或可以使用 ZF2 的HydratorManager设置自定义水合策略。 -
您找到解决方案了吗?
标签: mongodb doctrine-orm zend-framework2 laminas-api-tools