首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

ThinkPHP 模板操作速查:變量輸出、模板渲染與佈局技巧

     編輯:PHP 相關知識

ThinkPHP 模板引擎提供豐富的標簽語法,簡化視圖層開發。本文整理常用變量輸出標簽、模板渲染方法與佈局技巧,提升開發效率。

一、快捷變量輸出標簽

標簽說明示例
{:function(...)}執行函數/方法並輸出返回值{:date('Y-m-d')}
{~function}執行函數/方法,不輸出返回值{~session_start()}
{@var}輸出 Session 變量 $_SESSION['var']{@user.name}
{#var}輸出 Cookie 變量 $_COOKIE['var']{#remember_me}
{&var}輸出配置參數 C('var'){&URL_MODEL}
{%var}輸出語言變量 L('var'){%welcome}
{.var}輸出 GET 變量 $_GET['var']{.id}
{^var}輸出 POST 變量 $_POST['var']{^username}
{*var}輸出常量 VAR{*APP_DEBUG}

二、模板渲染方法 display()

控制器中調用 $this->display() 渲染模板,支持多種參數格式:

調用方式對應模板文件路徑說明
$this->display()Myapp/Tpl/default/Index/index.html默認:當前模塊/操作同名模板
$this->display('test1')Myapp/Tpl/default/Index/test1.html當前模塊下指定操作模板
$this->display('Message:test2')Myapp/Tpl/default/Message/test2.html跨模塊調用:模塊:操作
$this->display('Xp@Message:test2')Myapp/Tpl/Xp/Message/test2.html指定主題:主題@模塊:操作
$this->display('../Message/test3.html')Myapp/Tpl/default/Message/test3.html相對路徑直接指定文件

路徑解析規則

  • 默認模板目錄:APP_PATH/Tpl/
  • 默認主題:default(可在配置 DEFAULT_THEME 修改)
  • 模板文件後綴:.html(可配置 TMPL_TEMPLATE_SUFFIX)

三、進階佈局技巧

1. 佈局模板 layout

在配置中開啟 'LAYOUT_ON' => true,定義佈局文件 Tpl/default/Layout/layout.html:

<html>
<head><title>{$Think.config.SITE_TITLE}</title></head>
<body>
    <div class="header">...</div>
    <div class="content">
        {__CONTENT__} 
    </div>
    <div class="footer">...</div>
</body>
</html>

子模板無需重複頁面骨架,專注業務內容。

2. 模板繼承 extend / block (ThinkPHP 3.2+)

基礎模板 base.html:

<html>
<head><title>默認標題</title></head>
<body>
    默認內容
</body>
</html>

子模板 index.html:


首頁 - 我的網站

    

歡迎訪問

具體業務內容...

3. 內置變量

  • {$Think.server.script_name}:當前腳本路徑
  • {$Think.get.id}:等同 {.id}
  • {$Think.session.user_id}:等同 {@user_id}
  • {$Think.cookie.lang}:等同 {#lang}
  • {$Think.const.APP_PATH}:等同 {*APP_PATH}

四、最佳實踐建議

  1. 業務邏輯不入模板:複雜計算、查詢在控制器/模型完成,模板只負責展示。
  2. 善用佈局/繼承:減少重複代碼,統一風格維護成本低。
  3. 輸出轉義:默認 {$var} 已 HTML 轉義,原始 HTML 用 {$var|raw} 或 {:htmlspecialchars_decode($var)}。
  4. 模板緩存:生產環境開啟 'TMPL_CACHE_ON' => true,避免重複編譯。

掌握 ThinkPHP 模板操作,讓視圖層代碼清晰、可維護、高性能。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved