入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

[thinkPHP5项目实战_08]模板分离和URL生成

创建时间:2017-08-15 投稿人: 浏览次数:146

1.模板分离

在前端网页项目中不同的页面存在公共的模块,例如头部、底部和侧边栏等,使用tp5的模板分离可以将这些公共模块抽出,在需要的页面进行引入减少前端代码量,提高运行效率

以前台页面为例,在application/index/view下面新建一个Public文件夹,用于存放页面公共模板,分别新建header.html,resource.html,footer.html,sidebar.html将网页公共部分提取出来


2.模板引入

分久必合,在每个视图中分别使用包含文件的方法引入模板文件:
模版表达式的定义规则为:模块@控制器/操作

例如:

{include file="public/header" /} // 包含头部模版header
{include file="public/menu" /} // 包含菜单模版menu
{include file="blue/public/menu" /} // 包含blue主题下面的menu模版
例如在本项目中的index分别引入各个公共文件:

3.URL生成

“ThinkPHP5.0支持路由URL地址的统一生成,并且支持所有的路由方式,以及完美解决了路由地址的反转解析,无需再为路由定义和变化而改变URL生成。”

因此可以使用URL生成来确定路由方式;

本项目路由在header.html文件中,使用url助手函数引入对应的控制器及操作:

<div class="blog-masthead">
    <div class="container">
        <nav class="blog-nav">
            <a class="blog-nav-item" href="{:url("index/index")}">Home</a>
            <a class="blog-nav-item" href="{:url("lists/index")}">List</a>
            <a class="blog-nav-item" href="{:url("article/index")}">Article</a>
            <a class="blog-nav-item" href="{:url("search/index")}">Search</a>
            <a class="blog-nav-item" href="{:url("guest/index")}">Guestbook</a>
        </nav>
    </div>
</div>

在各个页面对应的控制器中使用模板替换,以lists为例(list是PHP关键字不能使用list)

<?php
namespace appindexcontroller;
use thinkController;
class Lists extends Controller
{
    public function index()
    {
        return $this->fetch("lists");
    }
}

完成模板替换后,点击tab可路由到对应页面:



声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。