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.数据块:在子模板中定义一个数据块,覆盖掉父模板中的某些模块;

 方法是:在子模板中定义数据标签,而后在父模板中调用。

  子模板中定义数据块:

  

 父模板中调用:

 

若是调用的时候还要判断数据块是否有被定义:

 

相关文章
相关标签/搜索