以往版本的ThinkPHP中頁面輸出的過程是讀取模板文件,然后進(jìn)行模板解析(也支持調(diào)用第三方模板引擎解析),但是有一些情況,我們并沒有定義模板文件,或者把模板文件保存在數(shù)據(jù)庫里面,那么這種情況下進(jìn)行頁面輸出的時候,我們是無法進(jìn)行模板文件讀取的,ThinkPHP3.1版本則針對這樣的情況增加了內(nèi)容解析輸出的功能。
內(nèi)置的模板引擎也進(jìn)行了完善,如果傳入的模板文件不存在的話,則會認(rèn)為是傳入的模板解析內(nèi)容,因此,ThinkPHP3.1版的View類和Action類也做了一些相應(yīng)的改進(jìn)。
display方法用于模板文件渲染輸出,show方法則用于模板內(nèi)容渲染輸出,并且show方法仍然支持內(nèi)容解析功能,因此,我們可以在控制器中這樣使用:
1
2
|
$this ->assign( 'name' , 'ThinkPHP' ); $this ->show( 'hello,{$name}!' ); |
頁面輸出的結(jié)果是:
1
|
hello,ThinkPHP! |
你也可以采用讀取數(shù)據(jù)庫的方式:
1
2
|
$content = M( 'Data' )->where( $map )->getField( 'content' ); $this ->show( $content ); |
對于$content變量中的內(nèi)容,可以和模板文件一樣支持變量和標(biāo)簽庫的解析,并且也可以支持模板布局功能。
show方法也可以指定輸出編碼和類型,例如:
1
|
$this ->show( $content , 'utf-8' , 'text/xml' ); |
總之,有了show方法后,可以把模板放數(shù)據(jù)庫中,對于模板的管理和更新也更加方便了。