前提: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.数据块:在子模板中定义一个数据块,覆盖掉父模板中的某些模块;
方法是:在子模板中定义数据标签,而后在父模板中调用。
子模板中定义数据块:
父模板中调用:
若是调用的时候还要判断数据块是否有被定义: