3.ThinkPHP入門---視圖

來源:互聯網
上載者:User

標籤: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入門---視圖

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.