symfony分页实现方法

前面仿照生成数据库实体,

一个分页让我无语了好长时间,找了各种资料,就是不知道怎么入门,官方文档又没有说,这里说一下吧!

好了言归正传:symfony分页是要用到组件的,symfony的核心就是善于使用别人的代码愉快的做一个程序员

所以这里使用KnpPaginatorBundle实现翻页

运行命令拉去组件

composer require "knplabs/knp-paginator-bundle"

下面是我运行的命令截图

这里大约要等十秒钟到5分钟左右看网速

拉取完成后,就需要到框架里面注册该组件在项目下的app/Resources/AppKernel.php里面注册


// app/AppKernel.php
class AppKernel  extends Kernel{ 
    public functionregisterBundles() {
        $bundles = [ 
                     new   Knp\Bundle\PaginatorBundle\KnpPaginatorBundle(),
        ]; 
    }

}


 
 再在控制器里面添加 

class NewsController extends Controller
{
    /**
     * 2016-1-19
     * auth:lsf
     * 查询列表
     * @param   int $page   页数
     * @param   int $limit  显示条数
    */
    public function indexAction($page,$limit){
        $em = $this->getDoctrine()->getManager();
        $qb = $em->getRepository('AppBundle:DemoList')->createQueryBuilder('u');
//Appbundle是你的模块DemoList是你的表实体 u是别名后面可接条件

        $paginator = $this->get('knp_paginator');
        $pagination = $paginator->paginate($qb, $page,$limit);
        
        return $this->render('news/list.html.twig',['pagination' => $pagination]);
    }
}
顺便贴一下路由地址做什么肯定要做全套,不然你们说我不厚道

在config文件夹下面的路由配置文件

routing.yml文件里面添加

news_page:
  path: "/news/{page}/{limit}"
  defaults: {_controller: AppBundle:News:index,page:1,limit:2}
不过这里不建议这样写,每页的条数肯定建议写配置文件里面,就不用这么麻烦了

再就是页面了

{#这是循环读取内容不用说了,肯定都晓得撒!#}
{% for value in pagination %}
{{value.title}}{#直接就是值了#}
{% endfor %}
{{ knp_pagination_render(pagination) }}
{#
这里是分页代码,是不是很简单呀!
#}

当然不建议我这么写,建议request,我这么写只是个人喜好

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值