ThinkPHP中的視圖模型?

視圖通常是指數據庫的視圖,視圖是一個虛擬表,其內容由查詢定義。同真實的表一樣,視圖包含一系列帶有名稱的列和行數據。

工具/原料

ThinkPHP框架

方法/步驟

模板的使用 (重點)a、規則模板文件夾下[TPL]/[分組文件夾/][模板主題文件夾/]和模塊名同名的文件夾[Index]/和方法名同名的文件[index].html(.tpl)更換模板文件的後綴名(修改配置文件)'TMPL_TEMPLATE_SUFFIX'=>'.html',//更改模板文件後綴名b、修改模板文件目錄層次'TMPL_FILE_DEPR'=>'_',//修改模板文件目錄層次c、模板主題'DEFAULT_THEME'=>'your',//設置默認模板主題需要在TPL下面新建一個your文件夾作為模板主題文件夾如何動態修改模板主題?1、在後臺準備一個功能,修改config.php文件中的默認模板項2、通過url傳遞 t=主題 參數可以修改不同的模板'DEFAULT_THEME'=>'your',//設置默認模板主題'TMPL_DETECT_THEME'=>true,//自動偵測模板主題'THEME_LIST'=>'your,my',//支持的模板主題列表

輸出模板內容 (重點)a、display1.display中沒有參數$this->display();2.可以帶參數$this->display(本模塊文件夾下的其他模板文件);$this->display('index2');$this->display(其他文件夾下的模板文件);$this->display('Public:error');//注意,僅僅需要在Tpl下有Public文件夾以及其中的error.html即可,不需要一定有Public模塊$this->display(其他主題下的 文件夾下的 模板文件);//需要開啟主題支持$this->display('my:Index:index');三、模板中的賦值 (重點)四、模板替換 (重點)

模版的使用

User模塊下的demo方法 ,模塊放置的地方,

D:\wamp\www\thinkphp\Home\Lib\Action

ThinkPHP中的視圖模型

ThinkPHP中的視圖模型

模塊顯示$this->display();

讓模版來顯示內容

那模版放在哪裡?

ThinkPHP中的視圖模型

創建模版index要和方法public function index(){}相同

class UserAction extends Action

要和tpl下面的User同名,然後就是方法名index和其中的模版名index.html要相同

模版文件下Tpl/[分組文件夾]【模版主題】和模塊名同名的文件夾Index/和方法名同名的文件index.html

ThinkPHP中的視圖模型

模版的後綴名.html或者.tpl

更換模版文件的後綴名

需要修改配置文件

配置文件

ThinkPHP中的視圖模型

//修改模版的後綴名

'TMPL_TEMPLATE_SUFFIX'=>'.html',

一般情況不要修改,默認為.html

更改模版的目錄結構

'TMPL_FILE_DEPR'=>'_',//修改模板文件目錄層次

c、模板主題'DEFAULT_THEME'=>'your',//設置默認模板主題需要在TPL下面新建一個your文件夾作為模板主題文件夾如何動態修改模板主題?1、在後臺準備一個功能,修改config.php文件中的默認模板項2、通過url傳遞 t=主題 參數可以修改不同的模板'DEFAULT_THEME'=>'your',//設置默認模板主題'TMPL_DETECT_THEME'=>true,//自動偵測模板主題'THEME_LIST'=>'your,my',//支持的模板主題列表

ThinkPHP中的視圖模型

ThinkPHP中的視圖模型

ThinkPHP中的視圖模型

//更改模版主題

//設置默認的主題

//'DEFAULT_THEME'=>'my',

//如果有多個主題

'DEFAULT_THEME'=>'your',

//動態的更改模版

'TMPL_DETECT_THEME'=>'true',

//自動偵測模板主題

'THEME_LIST'=>'your,my',

//支持的模板主題列表

ThinkPHP中的視圖模型

輸出模版中的內容

1) display中沒有參數

$this->display();

2)可以帶參數

$this->display(“模塊下的其他模版”);

這裡的模版名參數不要後綴名

ThinkPHP中的視圖模型

ThinkPHP中的視圖模型

ThinkPHP中的視圖模型

ThinkPHP中的視圖模型

ThinkPHP中的視圖模型

ThinkPHP中的視圖模型

輸出模版中的內容小結:

二、輸出模板內容 (重點)a、display1.display中沒有參數$this->display();2.可以帶參數$this->display(本模塊文件夾下的其他模板文件);$this->display('index2');$this->display(其他文件夾下的模板文件);$this->display('Public:error');//注意,僅僅需要在Tpl下有Public文件夾以及其中的error.html即可,不需要一定有Public模塊$this->display(其他主題下的 文件夾下的 模板文件);//需要開啟主題支持$this->display('my:Index:index');

在項目中可以用文件夾路徑的形式來調用文件

比如說

項目的公共文件Public

ThinkPHP中的視圖模型

ThinkPHP中的視圖模型

放在項目的Public下

屬於整個項目中,如何調用呢?

要用路徑來調用

//調用項目中的公共文件不是放在模塊下的模版文件中,而是放在項目的公共文件中

//用路徑來調用

$this->display('./Public/error.html');

//當前項目中的Public下的error.html頁面

ThinkPHP中的視圖模型

這裡的當前是指主入口文件index.php當前目錄下

display()的參數,第一個是模版,第二個是指定模版的編碼utf-8,可以不寫,模版的輸出類型默認是html,可以改成tpl,xml

$this->show();輸出模版的內容,模版文件不存在,或者別的文件,無法轉成html

可以用這個方式輸出內容

$this->show("這裡是用show方法來輸出內容。");

ThinkPHP中的視圖模型

//通常我們會將內容放在一個變量中,有可能這個變量是從數據庫中取出的

//$content="這是從數據庫中取出的數據";

//fetch方法可以將一個模版文件返回給一個字符串

$content=$this->fetch('Public:error');

$this->show($content);

ThinkPHP中的視圖模型

可以讀取模版的內容,是一個字符串

//打印出這個字符串

dump($content);

ThinkPHP中的視圖模型

//fetch方法可以將一個模版文件返回給一個字符串

$content=$this->fetch('Public:error');

//打印出這個字符串

//dump($content);

//當我們要替換一個字符串很方便

$content=str_replace("h1","h2",$content);

$this->show($content);

ThinkPHP中的視圖模型

fetch方法,獲得模版中的內容,以字符串的形式返回

//fetch方法可以將一個模版文件返回給一個字符串

$content=$this->fetch('Public:error');

//打印出這個字符串

//dump($content);

//當我們要替換一個字符串很方便

$content=str_replace("h1","h2",$content);

$this->show($content);

4)show()方法,不需要模版文件,可以向頁面中輸出內容

//fetch方法可以將一個模版文件返回給一個字符串

$content=$this->fetch('Public:error');

//打印出這個字符串

//dump($content);

//當我們要替換一個字符串很方便

$content=str_replace("h1","h2",$content);

$this->show($content);

ThinkPHP中的視圖模型

ThinkPHP中的視圖模型

相關問題答案