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

ThinkPHP 模板變量輸出與模板渲染調用完整速查

     編輯:PHP 相關知識

ThinkPHP 模板變量輸出與模板渲染調用完整速查

ThinkPHP 模板引擎提供豐富的變量輸出標籤與靈活的模板渲染方式,本文整理核心語法供開發速查。

一、模板變量輸出標籤

標籤功能示例等效 PHP
{$var}輸出模板變量{$user.name}
{:function()}執行函數並輸出返回值{:date('Y-m-d', $time)}
{~function}執行函數不輸出{~session_start()}
{@var}輸出 Session 變量{@user_id}
{#var}輸出 Cookie 變量{#think_language}
{&var}輸出配置參數{&URL_MODEL}
{%var}輸出語言變量{%_LANG_WELCOME}
{.var}輸出 GET 變量{.id}
{^var}輸出 POST 變量{^username}
{*var}輸出常量{*THINK_VERSION}

二、系統變量直接輸出

{$Think.get.id}        // $_GET['id']
{$Think.post.name}      // $_POST['name']
{$Think.session.user_id} // $_SESSION['user_id']
{$Think.cookie.lang}    // $_COOKIE['lang']
{$Think.server.REQUEST_URI} // $_SERVER['REQUEST_URI']
{$Think.env.PATH}       // $_ENV['PATH']
{$Think.request.id}     // $_REQUEST['id']

三、模板渲染調用方法

// 控制器中
// 1. 渲染默認模板(模塊/控制器/操作.html)
$this->display(); 
// 對應:Tpl/默認主題/控制器/操作.html

// 2. 渲染當前模塊指定操作模板
$this->display('edit'); 
// 對應:Tpl/默認主題/控制器/edit.html

// 3. 渲染指定模塊操作模板
$this->display('User:profile'); 
// 對應:Tpl/默認主題/User/profile.html

// 4. 渲染指定主題模塊操作模板
$this->display('Mobile@User:login'); 
// 對應:Tpl/Mobile/User/login.html

// 5. 渲染指定絕對/相對路徑模板文件
$this->display('./Public/error.html'); 
// 對應:項目根目錄/Public/error.html

// 6. 直接輸出內容(不使用模板文件)
$this->show('內容字符串', 'utf-8', 'text/html');

四、模板變量賦值

// 單個賦值
$this->assign('title', '頁面標題');
$this->assign('user', $userModel);

// 批量賦值
$this->assign([
    'title' => '列表頁',
    'list' => $dataList,
    'page' => $pageHtml
]);

// 模板中直接使用 {$title}、{$user.name}、{$list}、{$page}

五、常用模板標籤補充

  • 條件判斷:<if condition="$user['status'] eq 1">正常<else/>禁用</if>
  • 循環輸出:<volist name="list" id="vo">{$vo.name}</volist>
  • 引入子模板:<include file="Public:header" />
  • 輸出原始內容:{$content|raw} 或 {$content|htmlspecialchars_decode}
  • 默認值:{$var|default='無'}

六、模板路徑解析規則

// 假設:DEFAULT_THEME = 'default', TMPL_PATH = './Tpl/'
// 模塊: Home, 控制器: Index, 操作: index

display()           → ./Tpl/default/Home/Index/index.html
display('edit')     → ./Tpl/default/Home/Index/edit.html
display('User:add') → ./Tpl/default/Home/User/add.html
display('Mobile@User:login') → ./Tpl/Mobile/Home/User/login.html
display('./Public/404.html') → ./Public/404.html

熟練掌握模板語法與渲染調用,能顯著提升視圖層開發效率。

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