前面仿照生成数据库实体,
一个分页让我无语了好长时间,找了各种资料,就是不知道怎么入门,官方文档又没有说,这里说一下吧!
好了言归正传: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}}{#直接就是值了#}当然不建议我这么写,建议request,我这么写只是个人喜好{% endfor %}{{ knp_pagination_render(pagination) }}{##}这里是分页代码,是不是很简单呀!