THINKPHP5.1模板繼承
阿新 • • 發佈:2019-02-01
模板繼承相對於模板佈局來說,是比較靈活的,可以應用於絕大部分網頁開發中
要使用模板繼承,我們需要有一個父模板,來被控制器方法名對應的html檔案所繼承
比如有一個controller/demo/demo8/test1方法,對應的view檢視為view/demo8/test1.html,
還有個用來被繼承的父模板view/public/base.html,
首部檔案view/public/header.html,頁尾檔案view/public/footer.html
{include}標籤用來引入檔案,檔名寫在file屬性中,不需要加檔案的字尾(.html)
{block}用來顯示一個區塊的內容,在父模板中用name屬性給{block}做唯一標識,在子模板中,需要使用在父模板中同name的{block}才能將內容正確的顯示在父模板中對應的{block}的位置
父模板view/public/base.html內容:
父模板只允許{include}和{block}兩個標籤
{include file='public/header1' /}
{block name='body'}
主體
{/block}
{block name='nav'}
導航
{/block}
{include file='public/footer1' /}
父模板頁面頭部view/public/header.html內容:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <h2 style="color: red;">我是模板繼承案例的頭部</h2>
父模板頁面尾部view/public/footer.html內容:
<h2 style="color: green;">我是模板繼承案例的尾部</h2>
</body>
</html>
子模板繼承:application\demo\view\demo8\test2.html
{extend} 表示繼承,用name屬性標識繼承的父模板檔案所在位置,無需寫檔案字尾(.html)
{block}用來替換父模板中同name屬性的{block}位置的內容
子模板只允許出現{extend}和{block}標籤
{__block__}表示直接使用父模板中的內容
寫在{block}{/block}外部的內容是不會被顯示的
{extend name="public/base" /}
{block name='body'}
{__block__}
<h2 style="color: blue;">我是模板繼承的案例的body</h2>
{/block}
{block name='nav'}
{/block}