Apigility + Doctrine:如何返回分页集合

时间:2016-02-26 12:10:17

标签: php pagination doctrine apigility

我设法安装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},

这个问题的正确解决方案是什么?谢谢!

1 个答案:

答案 0 :(得分:0)

如果您希望使用分页回复,则必须确保从Paginator方法返回Zend fetch个实例。

在Apigility文档 here 中,内容如下:

  

扩展Zend\Paginator\Paginator的Collection类,它允许您提供分页结果集。