zoukankan      html  css  js  c++  java
  • 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)

    分页功能展示

  • 相关阅读:
    IE9的兼容性
    element 弹框关闭报错
    时间选择器moment格式化存在时差问题
    项目常见bug
    函数封装——函数封装——函数封装
    element-ui 日期选择器范围时间限制
    vue + element 创建教程
    Html基础学习
    HTML、PHP、CSS、JS之间的关系
    vs连接MySQL
  • 原文地址:https://www.cnblogs.com/fjl-vxee/p/6895269.html
Copyright © 2011-2022 走看看