前提:views文件夹下创建控制器名(小写)对应的文件夹,然后将控制器中用到的模板文件创建在其中;模板文件的后缀是".php"。
1.显示模板文件:
2.显示模板文件并传递参数:
yii的变量分配都是以数组形式的$data变量分配到模板中的。
(1).分配字符串到模板:
分配:
显示:
(2):分配数组到模板:
分配:
显示:
(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.数据块:在子模板中定义一个数据块,覆盖掉父模板中的某些模块;
方法是:在子模板中定义数据标签,然后在父模板中调用。
子模板中定义数据块:
父模板中调用:
如果调用的时候还要判断数据块是否有被定义: