yii视图

博客主要介绍了视图的创建与调用,需在根目录views文件夹下创建对应控制器名称的文件及视图文件;还提及数据传递,不过未详细说明;重点阐述了数据安全,可使用Html::encode()原样输出含标签或js代码的数据,用HtmlPurifier::process()过滤,使用时需引入。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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>

结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值