thinkphp系統支援原生的PHP模板,而且本身內建了一個基於XML的高效的編譯型模板引擎,系統預設使用的模板引擎是內建模板引擎,關於這個模板引擎的標籤詳細使用可以參考模版引擎部分。
ThinkPHP 內建的模板引擎來定義模板檔案,以及使用負載檔案、模板布局和模板繼承等進階功能。
每個模板檔案在執行過程中都會產生一個編譯後的快取檔案,其實就是一個可以啟動並執行 PHP 檔案。
PHP
/*index/controller/example.php*/ use think\Controller; class test extends Index { public function template (){ $name = 'Jerry'; $allName = [ 0 => "Jerry", 1 => "Tom" ]; $this->assign('nameA',$name); $this->assign('allName',$allName); return $this->fetch('example'); }}
HTML
/*index/view/example.html*/ <span>{$nameA}</span> {volist name="allName" id="vo"} <p data-sub="{$key}" data-index="{$i}">{$vo}</p> {/volist} Result<br /><span>Jerry</span> <p data-sub="0" data-index="1">Jerry</p> <p data-sub="1" data-index="2">Tom</p>
這樣 ThinkPHP 便完成了對頁面的解析工作,其中涉及到 模板執行個體化、定位、賦值、渲染及標籤的使用。
視圖執行個體化
暫無
模板賦值
顯然在在模板中直接使用 $name 是找不到該變數的。必須使用 assign 方法對模板賦值。在執行渲染輸出函數前, assign 方法使 函數內部變數與模板變數建立起映射關係。
$this->assign('name',$name);$this->assign('allName',$allName);
通過賦值之後,便可以在模板檔案中使用 {$nameA} 來輸出該變數了。
模板渲染
當資料已經準備好渲染到頁面上,還需要指定 html 檔案作為渲染模板,為當前函數執行 fetch 方法時候傳入 example 參數。
return $this->fetch('example');
模板標籤
在模板檔案中使用內建標籤可以協助我們在模板中迴圈、判斷變數。它以一對花括弧 {tag} {/tag} 作為開標籤和閉標籤。 { 與 } 之間必須緊跟標籤屬性或值,存在 空格 和 換行 都不能在渲染時被解析。
volist 標籤就是內建標籤中的其中一個,通常用來迴圈某個陣列變數。
{volist name="allName" id="vo"} <p data-sub="{$key}" data-index="{$i}">{$vo}</p> {/volist}
allName 是通過模板賦值的變數 ,現在可以在模板上直接使用了,顯然它是一個數組, volist 標籤對它做了迴圈操作。
volist 標籤常用的一些屬性:
| prop |
name |
id |
| key |
數組名 |
當前元素 |
| value |
allName |
vo |
隱藏在 volist 中的有幾個內部變數 {$key} {$i} ,分別代表了 數組下標 和 迴圈次數 。
內建標籤
與 volist 一樣好用的內建標籤還有很多:
<notempty name=""></notempty> //判斷資料是否不為空白 不為空白則執行
相關推薦:
Node.js使用jade模板引擎步驟詳解
node前端開發模板引擎Jade使用步驟詳解
node前端模板引擎Jade標籤使用詳解