>我已经设法安装了Apigility + Doctrine并返回单个实体(/service/x_id)和集合(/service)的结果,这是开箱即用的,无需修改。
我现在处于根据 URL 参数返回过滤结果的阶段。
我可以检索 url 参数,也可以检索过滤结果。为此,我在自己的 ResourceClass 中扩展了 fetch*() 方法。它工作正常,但此结果未分页,并且与其他响应(开箱即用的响应)的 HAL/Json 格式不同。我返回getEntityManager('my.em.name')->getRepository(my.repo.name)->findBy($params)
的结果,它实际上看起来像这样:
{
"_links":
{
"self":
{
"href": "http://api.local/service?startcode=7531"
}
},
"_embedded":
{
"objektprojectstart":
[
{
"oid": 14427,
"opsId": 3760,
"startcode": "7531",
"tid": 44798,
"_links":
{
"self":
{
"href": "http://studoraapi.local/service/3760"
}
}
},
{... more},
这个问题的正确解决方案是什么?谢谢!
如果你想要一个带有分页的响应,你必须确保从你的fetch
方法返回一个 Zend Paginator
实例。
在Apigility文件中,它写如下:
扩展
ZendPaginatorPaginator
的集合类,它将允许您提供分页结果集。