1.先新建一个项目工程
2.启动服务
3.创建一个Bundle
4.添加新闻链接
新建newscontroller
编写
<?php /** * Created by PhpStorm. * User: 嘉玲 * Date: 2017/5/23 * Time: 15:18 */ namespace ScourgenWebBundleController; use SensioBundleFrameworkExtraBundleConfigurationRoute; use SymfonyBundleFrameworkBundleControllerController; /** * @Route("/news") */ class NewsController extends Controller { /** * @Route("/", name="news_index") */ public function indexAction() { return $this->render('ScourgenWebBundle:News:index.html.twig'); } }
实现点击超链接跳转
框架自带的环境检查工具。
5.创建业务数据模型
(很重要的一点,一定要先把mysql服务开起来,不然就出现各种奇怪的错误)
在数据库中创建一个symfony数据库
创建一个新闻的Entity
具体的配置和下图差不多
创建一个schema
6.删除原来的newscontroller类文件,然后执行如下操作
7.安装composer
8.下载翻页的Bundle
先要在项目的composer.json中修改代码,不然下载速度太慢
然后执行下载
9.完成 KnpPaginatorBundle 的注册
对新闻首页的代码做更新:
这个文件中修改
{% extends 'base.html.twig' %} {% block body %} <h1>News list</h1> <table> <thead> <tr> <th>Id</th> <th>Title</th> <th>Body</th> <th>Actions</th> </tr> </thead> <tbody> {% for entity in pagination %} <tr> <td><a href="{{ path('news_show', { 'id': entity.id }) }}">{{ entity.id }}</a></td> <td>{{ entity.title }}</td> <td>{{ entity.body }}</td> <td> <ul> <li> <a href="{{ path('news_show', { 'id': entity.id }) }}">show</a> </li> <li> <a href="{{ path('news_edit', { 'id': entity.id }) }}">edit</a> </li> </ul> </td> </tr> {% endfor %} </tbody> </table> <ul> <li> <a href="{{ path('news_new') }}">Create a new news</a> </li> </ul> <tfoot> <tr> <td colspan="4"> {{ knp_pagination_render(pagination) }} </td> </tr> </tfoot> {% endblock %}
paginate中的第三个个参数可以设置分页的大小(很关键!)
$paginator->paginate($qb, $pageNumber, $pageSize)
分页功能展示