標籤:efault 傳遞 開發 ges 更改 檔案名稱 網站 .com 資料傳遞
視圖:MVC三大組成部分,負責資訊的展示和輸出
1.
視圖的建立
建立的位置需要是在分組目錄下的view目錄下餘控制器同名的目錄中。
2.視圖的展示
在smarty和tinkphp都是使用diaplay
$this->dispaly();
$this->display(‘模版檔案名稱’);
$this->display(‘view目錄下的目錄名/模版檔案名稱’);
3.
變數分配
3.1變數分配(初級)
在實際開發的時候不僅僅只是展示模版這麼簡單,往往還需要展示資料,這個時候變數還在控制器的方法中,需要將資料傳遞至模版中並且展示,這個過程叫變數分配,在thinkphp中系統封裝了一個變數分配的方法,方法為assign,具體文法如下:
$this->assign(‘模版中的變數名’,$php中的變數名);
例如:在TestController中的test方法中分配變數
public function test(){
$var=date(‘Y-m-d H:i:s‘,time());
$this->assign(‘var‘,$var);
$this->display();
}
Test.html如何擷取變數值?方法如下:{$模版中的變數名},
即現在北京時間:{$var}
3.2變數輸出(進階)
簡單變數輸出:
一維數組輸出:
二維數組輸出:
對象輸出:
對象在執行個體化之後一般會儲存到一個變數中,這個變數也可以被分配到模版當中
3.
變數分隔字元
在tinkphp中預設的額變數左右分隔字元是{},其是可以更改的
5.模版常量替換機制
在實際開發的時候會出現引入一些檔案往往需要寫複雜的路徑,那麼如何將複雜的路徑簡化,這個時候我們可以考慮模版常量替換機制
ThinkPHP中系統預設的幾個常用常量:
__MODULE__//標識從網域名稱後開始一直到分組結束的路由
__CONTROLLER__//標識從網域名稱後開始一直到控制器結束的路由
__ACTION__//標識從網域名稱後開始一直到方法結束的路由
__PUBLIC__//標識網站根目錄下public目錄的路由
__SELF__//標識從網域名稱後開始一直到最後結束的路由(如果沒有參數則與3內容相同)
在thinkphp中模版常量是通過模版內容替換機制來實現的,並非是常量的定義,替換機制可以查看行為檔案/thinkphp/libraty/behavior/contentreplacebehavior.class.php,其模版實現的核心就是字串替換
6.
模版內容擷取方法
1.在tinkphp中和display方法相似的方法叫fetch
$this->display();展示模版 $this-fetch();擷取模版--有傳回值
2.視圖注釋:
普通注釋在html原始碼中會被輸出:<!--這是注釋-->
Thinkphp中的模組注釋:
行注釋:{// 這是行注釋}
快注釋:{/*這是塊注釋*/}
7.
系統變數
$Think.Server//擷取伺服器的相關資訊
$Think.get//等價$_GET,擷取get請求資訊
$Think.post//等價$_POST,擷取post請求資訊
$Think.request//等價$_REQUEST,擷取request請求資訊
$Think.cookie//等價$_COOKIE,擷取cookie請求資訊
$Thin.config//等價$_CONFIG,擷取ThinkPHP中所有設定檔的綜合,若指定了元素則擷取指定的配置,
文法格式:{$Think.get.id}
8.
視圖中使用函數
實際開發中有些模版不能直接使用,如在視圖中展示時間戳記需要通過遍曆來處理格式,此時使用函數方式就相對容易。
8.1文法:{$變數|函數名1|函數名2=參數1,參數2}
8.2參數說明:|為變數修飾符
$模版變數
函數名1:標識需要使用的第一個函數,參數1,參數2標識函數2的參數
8.3案例1:
注意:當需要使用的函數只有一個參數並且參數是變數自身的時候###可省略
當需要使用的函數有多個參數,但是其第一個參數是變數自身的時候也可省略
關於函數名說明:函數名對應的函數必須是php內建函數或者是在函數庫定義好的
案例2:定義一個字串,截取其中前五個並轉成大寫{$str|substr=###,0,5|strtoupper}
9.
預設值
文法:{$變數名|default=預設值}
10.
運算子
+ - * / % ++ --
11.
檔案引入
將網站公用部分,如頭部,底部單獨存放在一個檔案中,在後期使用的時候直接引入該部分,維護時只需維護一份代碼即可
Thinkphp模版標籤:<include file=’/admin/style.css’>
12.
迴圈遍曆
在thinkphp中系統提供了2個標籤來實現數組在模版中的遍曆
Volist foreach
13.if標籤
<if conditon=’條件運算式’>
輸出結果1
<else if condition=’條件運算式2’/>
輸出結果2
<else/>
最後輸出
案例:
public function test12(){
$day=date(‘N‘,time());
$this->assign(‘day‘,$day);
$this->display();
}
<body>
<if condition=‘$day==1‘>
星期1
<elseif condition=‘$day==2‘/>
星期2
<elseif condition=‘$day==3‘/>
星期3
<elseif condition=‘$day==4‘/>
星期4
<elseif condition=‘$day==5‘/>
星期5
<elseif condition=‘$day==6‘/>
星期6
<else/>
星期7
</if>
</body>
14.
PHP標籤
在模版中使用php的文法格式,模版中php標籤Tinkphp支援兩種形式
14.1.Php內建的php標籤:<? php程式碼片段?>
14.2.Thinkphp中:<php>程式碼片段</php>
一般在視圖中不寫php標籤,同時也不建議禁用php標籤
3.ThinkPHP入門---視圖