3.ThinkPHP入門---視圖

視圖:MVC三大組成部分,負責信息的展示和輸出

 

1.視圖的創建

創建的位置需要是在分組目錄下的view目錄下餘控制器同名的目錄中。

 

2.視圖的展示

smartytinkphp都是使用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標籤

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章