在 symfony2 中哪个是最好的分页器?

问题描述 投票:0回答:2

我在我的存储库类中编写了自定义查询,它们返回数组,然后我对这些数组进行一些处理,然后显示到树枝。

因此,请建议最好的分页方法,以在此自定义查询上应用分页,从而生成数组。

我是 symfony2 的新手,默认分页是否有效以及如何工作?我的意思是什么语法,请提供示例。

symfony pagination doctrine
2个回答
0
投票

您应该尝试Knp Paginator。它简单且可定制。 简单代码示例(Doctrine MongoDB ODM):

// Pay attention: query, not result.
$query = $this->getRepositoryOfferKind()->createQueryBuilder()
  ->field('is_private')->equals(false)
  ->field('is_deleted')->notEqual(true)
  ->sort('updated_at', 'DESC')->getQuery();

$paginator = $this->get('knp_paginator');
$pagination = $paginator->paginate($query, $request->get('page', 1), 20);
/* @var $pagination SlidingPagination */
$pagination->setUsedRoute('admin_offer_kind_index');
$pagination->setPageRange(10);

return array(
  'objects' => $pagination,
);

还有树枝:

    <table>
      <thead>
      <tr>
        <th>Title</th>
      </tr>
    </thead>
    <tbody>
    {% for object in objects %}
        <tr>
            <td>
                {{ object.title }}
            </td>
        </tr>
    {% else %}
        <tr>
            <td>No data</td>
        </tr>
    {% endfor %}
    </tbody>
    <tfoot>
    <tr>
        <td>
            {{ knp_pagination_render(objects) }}
        </td>
    </tr>
    </tfoot>
</table>

0
投票

您可以尝试这个原生解决方案

public function getPagination($someValue, int $page = 1, $limit = 20, $sort = "createdAt", $sortOrder = 'DESC')
{
     $qb = $this->createQueryBuilder();
     $qb->field('some_filed')->equals($someValue);
     // and so on
     return $qb->sort($sort, $sortOrder)
        ->skip(($page - 1) * $limit)
        ->limit($limit)
        ->getQuery()->toArray();
}
© www.soinside.com 2019 - 2024. All rights reserved.