我创建了一个资源,当提取GET /resource/{id}
时,使用以下模板返回响应(成功/找到):
{
"name": "Name",
"code" "Code",
"_embedded" : {
"foos" : [{
"name" : "bar1",
"value" : "value1",
},
{
"name" : "bar2",
"value" : "value2",
}]
}
}
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 size
中FooCollection
的{{1}}有关,但在我的情况下设置等于25。
我试着查看Zend文档,看看我是否可以强制将module.config.php
设置为-1,因为这样做(我认为)不会对结果进行分页。
我没有尝试将Collection用作Paginator
属性的普通数组。我展示了所有结果,但没有将每个"foos"
实体渲染为foo
实体
答案 0 :(得分:1)
最后!
Apigility中的Collection
来自Zend\Paginator\Paginator
。根据{{3}},分页符的默认页面大小(或每页的项目数)为10.
我所要做的就是使用-1
将页面大小设置为$paginator->setItemCountPerPage(-1)
,以告诉分页器将所有实体包含在一个页面中。