实体中的嵌入式集合仅在Apigility中呈现多达10个实体

时间:2016-10-21 09:21:22

标签: rest apigility

我创建了一个资源,当提取GET /resource/{id}时,使用以下模板返回响应(成功/找到):

资源:

{
    "name": "Name",
    "code" "Code",
    "_embedded" : {
        "foos" : [{
            "name" : "bar1",
            "value" : "value1",
       },
       {
            "name" : "bar2",
            "value" : "value2",
       }]
    }

}

获取代码($ id)

fetch($id){

    $resource = ... // query resource

    $resourceEntity = new ResourceEntity();
    $resourceEntity->exchangeArray($resource);

    $foos = ... // query foos
    $fooAdapter = new Adapter\ArrayAdapter($foos);
    $fooCollection = new Foo\FooCollection($fooAdapter);

    $resourceEntity->foos = $fooCollection;

    return $resourceEntity;

}

我的问题是,当fooCollection由更多组成,而不是10个实体只有时,会回复10个实体。

到目前为止我尝试过的事情:

  • 我检查了这是否与default page sizeFooCollection的{​​{1}}有关,但在我的情况下设置等于25。

    < / LI>
  • 我试着查看Zend文档,看看我是否可以强制将module.config.php设置为-1,因为这样做(我认为)不会对结果进行分页。

  • 我没有尝试将Collection用作Paginator属性的普通数组。我展示了所有结果,但没有将每个"foos"实体渲染为foo实体

1 个答案:

答案 0 :(得分:1)

最后!

Apigility中的Collection来自Zend\Paginator\Paginator。根据{{​​3}},分页符的默认页面大小(或每页的项目数)为10.

我所要做的就是使用-1将页面大小设置为$paginator->setItemCountPerPage(-1),以告诉分页器将所有实体包含在一个页面中。