YII視圖操做

前提:views文件夾下建立控制器名(小寫)對應的文件夾,而後將控制器中用到的模板文件建立在其中;模板文件的後綴是".php"。php

1.顯示模板文件:html

   

 

2.顯示模板文件並傳遞參數:數組

  yii的變量分配都是以數組形式的$data變量分配到模板中的。安全

  (1).分配字符串到模板:yii

      分配:函數

    

   顯示:佈局

    

(2):分配數組到模板:htm

    分配:字符串

    

   顯示:模板

    

(3).分配js到模板:

    分配:

   

    顯示:

    

   因爲若是直接將js傳遞到頁面,js會被解析並被執行;這樣頁面就出現了安全性問題:
    咱們能夠在顯示的時候作處理(1.引入對應的命名空間;2.函數對分配的變量做處理)

   方法一:將js作轉義處理,轉換成字符串,只顯示,不執行:

   

方法二:直接將js作過濾處理:

   

 

3.佈局文件:

   使用佈局文件能夠避免重寫相同的html代碼;通用的模板文件放在/views/layouts文件中,顯示的使用rander方法(配合$layout屬性):

   分配:

  

  顯示:在父級模板中獲取子級模板的東西

  

注:render():將render方法中指定的視圖文件放到變量content中,並顯示顯示$layout變量指定的視圖文件;在$layout指定的模板中調用$content,便可顯示子級模板內容。

 

4.在一個模板文件中顯示另一個模板的內容:

 如:在index.php模板中顯示anthor.php模板(index.php和anthor.php處於同一級);分爲兩個步驟:先顯示index.php模板,而後在index.php模板中顯示anthor.php模板:

 步驟一.顯示index.php(renderPartial或者render或者方法均可以):

   

步驟二:在index.php模板中顯示anthor.php模板:

   

若是此時還要在index.php中傳遞參數到anthor.php:

  index.php中傳遞:

  

  anthor.php中接受:

  

 

5.數據塊:在子模板中定義一個數據塊,覆蓋掉父模板中的某些模塊;

 方法是:在子模板中定義數據標籤,而後在父模板中調用。

  子模板中定義數據塊:

  

 父模板中調用:

 

若是調用的時候還要判斷數據塊是否有被定義:

 

相關文章
相關標籤/搜索