yii视图

    xiaoxiao2025-03-17  30

    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>

    结果:

    最新回复(0)