視圖也是ThinkPHP使用的核心部分:
一、模闆的使用
a、規則
模闆檔案夾下[TPL]/[分組檔案夾/][模闆主題檔案夾/]和子產品名同名的檔案夾[Index]/和方法名同名的檔案[index].html(.tpl)
-->更換模闆檔案的字尾名(修改配置檔案)
'TMPL_TEMPLATE_SUFFIX'=>'.tpl',//更改模闆檔案字尾名,預設是html
b、修改模闆檔案目錄層次
Tpl/Index/index.html ==> Tpl/Index_index.html (改成這種檔案目錄形式)
配置檔案:
'TMPL_FILE_DEPR'=>'_',//修改模闆檔案目錄層次
c、模闆主題(就是網站的不同模闆類似QQ裝扮皮膚)
-->TP預設是沒有主題的,現在模拟建立2個主題模闆 my 和 your 檔案夾
Home/Tpl/my/Index/index.html
Home/Tpl/your/Index/index.html
想用哪個模闆主題,在配置檔案中換上對應值即可
'DEFAULT_THEME'=>'your', //設定預設模闆主題,通路的時候就是your模闆下的index
需要在TPL下面建立一個your檔案夾作為模闆主題檔案夾
*如何動态修改模闆主題?
1、在背景準備一個功能,修改config.php檔案中的預設模闆項
2、通過url傳遞 t=主題 參數可以修改不同的模闆
'DEFAULT_THEME'=>'your',//設定預設模闆主題
'TMPL_DETECT_THEME'=>true,//自動偵測模闆主題
'THEME_LIST'=>'your,my',//支援的模闆主題清單要先建立好 my 和 your模闆
設定好後這麼通路,後面直接帶個t參數 t/你的模闆檔案:
http://localhost/thinkphp/index.php/Index/index.html/t/my
http://localhost/thinkphp/index.php/Index/index.html/t/your
二、輸出模闆内容
a、display
1.display中沒有參數
$this->display();
2.可以帶參數
$this->display(本子產品檔案夾下的其他模闆檔案);
$this->display('index2');
$this->display(其他檔案夾下的模闆檔案);
$this->display('User:index'); //本子產品調用User子產品的index檔案
//注意,僅僅需要在Tpl下有Public檔案夾以及其中的error.html即可
//不需要一定有Public子產品--PublicAction.class.php
$this->display('Public:error');
$this->display(其他主題下的 檔案夾下的 模闆檔案);
//需要開啟主題支援,DEFAULT_THEME'=>'my'
$this->display('my:Index:index');
$this->display(一個url路徑);
$this->display('./Public/error.html'); //public位置在網站根目錄下 /public/error.html
//幾乎不使用
$this->display('./Public/error.html','utf-8','text/xml'); //模闆 編碼 顯示方式(html或xml)
$content ='<b>這是show的使用直接傳html代碼</b>';//可能是資料庫啊直接拿到的輸出來
$this->show($content); == $this->show('<b>這是show的使用直接傳html代碼</b>');
3.fetch方法
獲得模闆檔案中的内容,以字元串形式傳回
$content=$this->fetch('Public:error');
4.show方法
不需要模闆檔案,可以直接輸出模闆内容
dump($content);
$content=str_replace('h1','i',$content);
$this->show($content);
三、模闆中的指派 :
//$this->assign('name','樂楊俊'); 或
$this->name='樂楊俊2';
模闆變量輸出:
一、變量輸出
1.标量輸出 --整型 浮點型 字元型、、、
2.數組輸出
$arr = array('k1'=>'leyangjun','k2'=>'leyangjun2');
$this->assign('name',$arr);
模闆輸出用:
{$name[1]} --索引數組
{$name['k2']} --關聯數組 或
{$name.k1}
3.對象輸出
{$name:k}
{$name->k}
二、系統變量(手冊詳細介紹)
//http://localhost/thinkphp/index.php/Index/add/name/leyangjun
{$Think.get.name} --url傳的name值,在模闆中可以直接拿到輸出
{$Think.get.id}
三、使用函數(模闆中對變量直接使用PHP函數)
{$name|strtoupper} 生成的編譯後檔案是 <?php echo (strtoupper($name)); ?> 在生成臨時檔案可見
{$name|date='Y m d H:i:s',###}
四、預設值
{$name|default='這裡是預設值'}
五、運算符
+ - * / % ++ --
$this->assign('name',10);
{$name++} --11