yii2.0视图

安全:当创建生成HTML页面的视图时,在显示之前将用户输入数据进行转码和过滤非常重要, 否则,你的应用可能会被 跨站脚本 攻击。

//转义
<?php
use yii\helpers\Html;
?>

<div class="username">
    <?= Html::encode($user->name) ?>
</div>

//过滤
<?php
use yii\helpers\HtmlPurifier;
?>

<div class="post">
    <?= HtmlPurifier::process($post->text) ?>
</div>

组织视图 :控制器渲染的视图文件默认放在 @app/views/ControllerID 目录下, 其中 ControllerID 对应 控制器 ID, 例如控制器类为 PostController,视图文件目录应为 @app/views/post, 控制器类 PostCommentController对应的目录为@app/views/post-comment, 对于 小部件 渲染的视图文件默认放在 WidgetPath/views 目录, 其中 WidgetPath 代表小部件类文件所在的目录;

 

控制器中渲染:要渲染控制器中的视图,可以使用下面的方法

  • render() − 渲染一个视图,并应用布局
  • renderFile() − 在一个给定的文件路径或别名来渲染视图
  • renderAjax() − 渲染视图但不使用布局,但所有的注入JS和CSS文件
  • renderPartial() − 渲染视图,但不使用布局
  • renderContent() − 渲染一个静态字符串并应用布局

视图赋值

1. 方法一(推荐)

// 控制器中赋值变量
public function actionIndex()  
{  
    $this->getView()->params['title'] = 'here is index';  
    return $this->render('index');  
}  

// 视图中显示变量
<?php echo $this->params['title']; ?>

注:params 是 YII 视图类中预定义的一个成员变量,所以可以直接通过 $this->params 引用。

优点:在视图文件中你可能需要处理控制器传递过来的变量,比如:$title = $this->params['title'],那么通过 $title 和 $this->params['title'] 这两个写法你可以很容易区分哪个变量是在视图文件中临时定义的,哪个变量是从控制器中传递过来;同时也防止变量因为名字相同而覆盖。

2. 方法二

// 控制器中赋值变量
public function actionIndex()  
{  
    $params = array('title'=>'here is index');
    return $this->render('index', $params);  
}  

// 视图中显示变量
<?php echo $title; ?>

小部件中渲染 :在 小部件 中,可调用以下小部件方法来渲染视图:render(): 渲染一个 视图名. 别名下的视图文件。

namespace app\components;

use yii\base\Widget;
use yii\helpers\Html;

class ListWidget extends Widget
{
    public $items = [];

    public function run()
    {
        // 渲染一个名为 "list" 的视图
        return $this->render('list', [
            'items' => $this->items,
        ]);
    }
}

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值