da/paginator-bundle

Symfony2 的分页助手包

安装量: 6 114

依赖者: 0

建议者: 0

安全: 0

星标: 0

关注者: 4

分支: 0

开放问题: 0

类型:symfony-bundle

dev-master 2016-10-06 14:30 UTC

This package is auto-updated.

Last update: 2024-09-13 22:47:30 UTC


README

这个 Symfony2 的包是一个用于方便管理分页内容的助手。它是基于 Pagerfanta 构建的。

安装

安装是一个简单的两步过程。

第一步:添加到 composer

在 composer.json 文件中添加该包

// composer.json

"require": {
    // ...
    "pagerfanta/pagerfanta": "dev-master",
    "da/paginator-bundle": "dev-master"
},

使用 composer 更新你的 vendors

composer update      # WIN
composer.phar update # LINUX

第二步:在内核中声明

在内核中声明该包

// app/AppKernel.php

$bundles = array(
    // ...
    new Da\PaginatorBundle\DaPaginatorBundle(),
);

用法

分页内容定义

/**
 * @Route("/")
 * @Template()
 */
public function testAction()
{
    $paginator = $this->container->get('da_paginator.paginator');

    $paginatedContent = $paginator->defineOffsetPaginatedContent(
        array('id' => 'Id', 'name' => 'City Name'),
        'array',
        array(array(
            array('id' => 1,  'name' => 'madrid',    'desc' => 'none'),
            array('id' => 2,  'name' => 'berlin',    'desc' => 'none'),
            array('id' => 3,  'name' => 'london',    'desc' => 'none'),
            array('id' => 4,  'name' => 'boston',    'desc' => 'none'),
            array('id' => 5,  'name' => 'chicago',   'desc' => 'none'),
            array('id' => 6,  'name' => 'new york',  'desc' => 'none'),
            array('id' => 7,  'name' => 'sidney',    'desc' => 'none'),
            array('id' => 8,  'name' => 'paris',     'desc' => 'none'),
            array('id' => 9,  'name' => 'tokyo',     'desc' => 'none'),
            array('id' => 10, 'name' => 'hong kong', 'desc' => 'none'),
            array('id' => 11, 'name' => 'pekin',     'desc' => 'none'),
            array('id' => 12, 'name' => 'bombay',    'desc' => 'none')
        )),
        'skip',
        'limit'
    );

    return array('cities' => $paginatedContent);
}

defineOffsetPaginatedContent 允许您定义分页内容。 array 表示您以数组形式使用数据,但您也可以使用 doctrine 查询构建器、回调等。

您可以使用偏移量/长度模式或页面/每页模式,并定义自己的标签(这里为 skip/limit)。

分页内容显示

{{ da_paginator.render(cities, 'bootstrap')|raw }}

render 允许您以快速和定制的方式渲染分页内容。

文档

您还可以做更多的事情,比如格式化列的内容。让我们看看完整的 文档,了解更多解释和高级功能!