Php symfony中的特殊分页要求

Php symfony中的特殊分页要求,php,symfony,paging,Php,Symfony,Paging,我试图创造这种逻辑,但我无法达到任何目标 我有一个feed列表。它有时非常大,几乎有2000个条目 现在我想创建一个Read函数,它给我前40个条目,当我读过它们或者我完全滚动到按钮时,接下来的40个条目应该附加到列表的按钮上 我目前的工作人员: 我使用page和pagesize创建了一个分页,但问题如下: 假设我们总共有20个条目,a开始请求条目: 第1页列表的5项0-5(如果ar读取,则它们不再在列表中!) 不是我加载第2页=>项目5-0 aso。。在某一点上,它会跨越自身,并且不会返回任何

我试图创造这种逻辑,但我无法达到任何目标

我有一个feed列表。它有时非常大,几乎有2000个条目

现在我想创建一个Read函数,它给我前40个条目,当我读过它们或者我完全滚动到按钮时,接下来的40个条目应该附加到列表的按钮上

我目前的工作人员:

我使用page和pagesize创建了一个分页,但问题如下: 假设我们总共有20个条目,a开始请求条目:

第1页列表的5项0-5(如果ar读取,则它们不再在列表中!) 不是我加载第2页=>项目5-0 aso。。在某一点上,它会跨越自身,并且不会返回任何项目

有人知道我如何解决这个问题吗


谢谢

您必须使用Paginator类。我的一个存储库类上有一个工作示例:

<?php

namespace Fluency\Bundle\GeneralBundle\Entity\Repository;

use Doctrine\ORM\EntityRepository,
    Doctrine\ORM\Tools\Pagination\Paginator;
use Fluency\Bundle\GeneralBundle\Entity\Country;

/**
 * CountryRepository
 *
 * This class was generated by the Doctrine ORM. Add your own custom
 * repository methods below.
 */
class CountryRepository extends EntityRepository
{
    /**
     * @param array $criteria
     * @param null $limit
     * @param null $start
     * @return array with this format (0 => $result, 1 => $counter)
     */
    public function findAllByCriteria($criteria = array(), $limit = null, $start = null)
    {
        $query = $this->getEntityManager()->createQueryBuilder()
            ->select('c')
            ->from($this->getEntityName(), 'c')
            ->orderBy('c.name', 'ASC');

        if(null !== $limit)
        {
            $query->setMaxResults($limit);
        }

        if(null !== $start)
        {
            $query->setFirstResult($start);
        }

        if(!empty($criteria))
        {
            if($criteria['active'])
            {
                $query->andWhere($query->expr()->eq('c.active', $criteria['active']));
            }
        }

        $paginator = new Paginator($query);

        return array($query->getQuery()->getArrayResult(), $paginator->count());
    }
    .................
}