當(dāng)我們的模板在主頁的時候,顯示的是下面這幅圖這樣说墨。若切換到其他頁面骏全,可能會做一下修改,畢竟其他頁面和主頁肯定不一樣尼斧。這個時候姜贡,就可以在這個base.html中,用{block name=""}{/block}將可能需要更改的地方先括起來棺棵。等到其他模板頁面的時候楼咳,再進行修改熄捍。
看下圖,就進行了修改
需要注意的是母怜,“被繼承的模板”中余耽,block不能同名。也就是母版苹熏,用{block name="jojo"}{/block}括起來的地方碟贾,其他地方block不能再叫做jojo
上面取完名字,下面就開始創(chuàng)建文件轨域,并且將base.html這個母版中的全部代碼復(fù)制過來袱耽,刪去沒用的block
上面之所以這么做,是因為layout開啟之后疙挺,有這么一個好處扛邑,就是只要用{__CONTENT__}放到想要修改的layout.html中,然后將index.html或者其他的模板文件全部清空铐然,在index.html中寫上任意內(nèi)容蔬崩,都可以轉(zhuǎn)換成layout.html中做了{__CONTENT__}標(biāo)記的地方,并且在網(wǎng)頁中正常展示index.html中的內(nèi)容搀暑。很神奇沥阳,但是有點繞人。
比如下面這幅圖自点,就會將index.html頁面中隨便寫的12121212字符串(只是寫了字符串)自動轉(zhuǎn)換到下圖這個位置桐罕。然后index.html頁面真正展示的是有l(wèi)ayout.html效果的矢棚,但是內(nèi)容又做了替換的頁面
當(dāng)然酣胀,index.html中,也可以寫html標(biāo)簽肋演,也可以用include术唬。layout.html中雖然block不起作用薪伏,但是也是可以使用include的
當(dāng)然,若想要更靈活的使用layout粗仓,那么可以像下面這么做
在layout.html中用變量
然后嫁怀,巧妙的地方就在這里:
在控制器中,將對應(yīng)每個模板的方法里面借浊,都用$this->assign('title','index')適當(dāng)?shù)倪M行修改塘淑,就給每個方法對應(yīng)的模板配合layout.html展現(xiàn)出不同的效果(此時page的幾個頁面里面都清空過一次了。只有一兩行html代碼)而此時下面經(jīng)過這樣的變量賦值分配蚂斤,在打開不同的頁面的時候存捺,就會顯示不同的標(biāo)題了。