Symfony框架实战学习
1.先新建一个项目工程

2.启动服务

3.创建一个Bundle


4.添加新闻链接

新建newscontroller

编写
<?php /** * Created by PhpStorm. * User: 嘉玲 * Date: 2017/5/23 * Time: 15:18 */ namespace Scourgen\WebBundle\Controller; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; use Symfony\Bundle\FrameworkBundle\Controller\Controller; /** * @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)

分页功能展示



浙公网安备 33010602011771号