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)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>
子模板無需重複頁面骨架,專注業務內容。
extend / block (ThinkPHP 3.2+)基礎模板 base.html:
<html> <head><title>默認標題 </title></head> <body>默認內容 </body> </html>
子模板 index.html:
首頁 - 我的網站 歡迎訪問
具體業務內容...
{$Think.server.script_name}:當前腳本路徑{$Think.get.id}:等同 {.id}{$Think.session.user_id}:等同 {@user_id}{$Think.cookie.lang}:等同 {#lang}{$Think.const.APP_PATH}:等同 {*APP_PATH}{$var} 已 HTML 轉義,原始 HTML 用 {$var|raw} 或 {:htmlspecialchars_decode($var)}。'TMPL_CACHE_ON' => true,避免重複編譯。掌握 ThinkPHP 模板操作,讓視圖層代碼清晰、可維護、高性能。