Symfony框架实战学习

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)

分页功能展示

原文地址:https://www.cnblogs.com/fjl-vxee/p/6895269.html