3

我正在尝试将 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
}

这个输出有(至少)两个问题:

  1. 每个属性的键都是奇怪的格式。它包含带有文档名称的完整命名空间,以及 NULL 的 utf8 代码
  2. “self”链接没有使用正确的 id(它使用数字 1 而不是 mongodb 自动生成的 id)。

有什么问题/缺失?

4

1 回答 1

0

当 php 使用 ObjectProperty (\Zend\Stdlib\Hydrator\ObjectProperty ) hydrator 填充 Objects 时会发生这种情况。在 Apigility 中,如果您不指定 hydrator,那么它将回退到 ObjectProperty hydrator(Default),这似乎是这种情况你的输出。改用 Classmethods hydrator (\Zend\Stdlib\Hydrator\ClassMethods)。

于 2014-12-10T21:50:52.657 回答