1、视图创建与调用
(1)创建
在根目录下的views文件夹下创建对应控制器名称的文件,在这个文件夹下创建视图文件
(2)调用
控制器HelloController.php
namespace app\controllers; use yii\web\Controller; class HelloController extends Controller{ public function actionIndex(){ //使用方法renderPartial渲染视图,前面必须有return return $this->renderPartial('index'); } }视图文件index.php
<h4>哈哈哈哈</h4>结果:
2、数据传递
控制器:
namespace app\controllers; use yii\web\Controller; use yii\web\Cookie; class HelloController extends Controller{ public function actionIndex(){ //待传递的参数 $str = 'oh my gosh!'; $arr = array('what an idiot,', 'don\'t you say that'); //创建数组 $data = array(); //把待传递参数放入数组中 $data['str'] = $str; $data['arr'] = $arr; //数组data传递给视图 return $this->renderPartial('index', $data); } }视图:
<h4><?=$str;?></h4> <h6><?=$str . $arr[0] . $arr[1];?></h6>结果:
3、数据安全
(1)解析数据中的标签
当控制器传递给视图的数据中有标签或js代码,而我们又想原样输出时,可以使用Html::encode()处理数据;如果想过滤掉标签或js等,则使用HtmlPurifier::process()处理数据。使用这两个类方法,需要引入。实例代码如下:
HelloController.php
namespace app\controllers; use yii\web\Controller; use yii\web\Cookie; class HelloController extends Controller{ public function actionIndex(){ //待传递的参数 $str = 'oh my gosh!<script type="text/javascript">alert(\'it is amazing\')</script>'; //创建数组 $data = array(); //把待传递参数放入数组中 $data['str'] = $str; //数组data传递给视图 return $this->renderPartial('index', $data); } }index.php
<?php //引入需要的类 use yii\helpers\Html; use yii\helpers\HtmlPurifier; ?> <h4><?=Html::encode($str);?></h4> <h4><?=HtmlPurifier::process($str);?></h4>结果: