ThinkPHP 模板引擎使用方法詳解

來源:互聯網
上載者:User
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標籤使用詳解

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.