Yii框架视图、视图布局、视图数据块操作示例


Posted in PHP onOctober 14, 2019

本文实例讲述了Yii框架视图、视图布局、视图数据块操作。分享给大家供大家参考,具体如下:

Yii 视图

控制器方法代码:

public function actionIndex(){
    $data = array(
      'name' => 'zhangsan',
      'age' => 12,
      'address' => array('北京市','朝阳区'),
      'intro' => '我是简介,<script>alert("123");</script>'
    );
    return $this->renderPartial('index',$data);//第二个参数赋值
  }

视图代码:

<?php
  use yii\helpers\Html;
  use yii\helpers\HtmlPurifier;
?>
<h1>Hello index view</h1>
<h2>姓名:<?php echo $name;?></h2>
<h2>年龄:<?=$age?></h2>
<h2>地址:<?=$address[0]?> <?=$address[1]?></h2>
<h2>简介:<?=Html::encode($intro)?> </h2>
<h2>简介:<?=HtmlPurifier::process($intro)?> </h2>

Yii 视图布局

控制器代码:

//设置的布局文件
  public $layout = 'common';
  public function actionAbout(){
    $data = array('page_name'=>'About');
    //render方法会把视图文件common的内容放到$content当中,并显示布局文件。
    return $this->render('about',$data);
  }

公共视图common代码:

<!DOCTYPE html>
<html>
<head>
  <title></title>
  <meta charset="UTF-8">
</head>
<body>
<h1>这是Common内容</h1>
<div>
  <?=$content?>
</div>
</body>
</html>

视图about代码,并调用了activity视图:

<h1> Hello <?=$page_name?></h1>
<?php echo $this->render('activity',array('page_name'=>'activity'));?>

视图activity代码:

<h1> Hello <?=$page_name?></h1>

结论:视图引用了公共布局文件,并且在一个视图中调用另一个视图文件。

Yii 视图数据块

控制器代码:

public $layout = 'common';
  public function actionStudent(){
    $data = array('page_name'=>'Student');
    return $this->render('student',$data);
  }
  public function actionTeacher(){
    $data = array('page_name'=>'Teacher');
    return $this->render('teacher',$data);
  }

公共布局文件common代码:

<!DOCTYPE html>
<html>
<head>
  <title>
    <?php if(isset($this->blocks['webTitle'])):?>
      <?=$this->blocks['webTitle'];?>
    <?php else:?>
      commom
    <?php endif;?>
  </title>
  <meta charset="UTF-8">
</head>
<body>
<h1>这是Common内容</h1>
<div>
  <?=$content?>
</div>
</body>
</html>

视图student代码:

<?php $this->beginBlock('webTitle');?>
<?=$page_name?>页面
<?php $this->endBlock();?>
<h1> Hello <?=$page_name?></h1>

视图teacher代码:

<h1> Hello <?=$page_name?></h1>
<?php $this->beginBlock('webTitle');?>
<?=$page_name?>页面
<?php $this->endBlock();?>

总结:如果需要在视图中改变公共模板中的内容,需要使用block方法,例如上面例子中改变了common页面的title。

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

PHP 相关文章推荐
PHP中用正则表达式清除字符串的空白
Jan 17 PHP
php性能优化分析工具XDebug 大型网站调试工具
May 22 PHP
PHP array操作10个小技巧分享
Jun 23 PHP
dhtmlxTree目录树增加右键菜单以及拖拽排序的实现方法
Apr 26 PHP
深入理解PHP几个算法:PHP冒泡、PHP二分法、PHP求素数、PHP乘法表
Jun 06 PHP
php 读取文件头判断文件类型的实现代码
Aug 05 PHP
函数中使用require_once问题深入探讨 优雅的配置文件定义方法推荐
Jul 02 PHP
从零开始学YII2框架(六)高级应用程序模板
Aug 20 PHP
curl和libcurl的区别简介
Jul 01 PHP
Yii2超好用的日期和时间组件(值得收藏)
May 05 PHP
PHP+RabbitMQ实现消息队列的完整代码
Mar 20 PHP
使用php的mail()函数实现发送邮件功能
Jun 03 PHP
laravel 5.3 单用户登录简单实现方法
Oct 14 #PHP
在laravel5.2中实现点击用户头像更改头像的方法
Oct 14 #PHP
Yii框架数据库查询、增加、删除操作示例
Oct 14 #PHP
laravel框架上传图片实现实时预览功能
Oct 14 #PHP
解决laravel上传图片之后,目录有图片,但是访问不到(404)的问题
Oct 14 #PHP
yii框架数据库关联查询操作示例
Oct 14 #PHP
laravel实现上传图片并在页面显示的例子
Oct 14 #PHP
You might like
PHP Memcached + APC + 文件缓存封装实现代码
2010/03/11 PHP
PHP操作mysql函数详解,mysql和php交互函数
2011/05/19 PHP
php查看请求头信息获取远程图片大小的方法分享
2013/12/25 PHP
mysql_connect localhost和127.0.0.1的区别(网络层阐述)
2015/03/26 PHP
一个完整的php文件上传类实例讲解
2015/10/27 PHP
thinkphp验证码的实现(form、ajax实现验证)
2016/07/28 PHP
php操纵mysqli数据库的实现方法
2016/09/18 PHP
JavaScript对IE操作的经典代码(推荐)
2014/03/10 Javascript
一个简单的jQuery计算器实现了连续计算功能
2014/07/21 Javascript
scrollWidth,clientWidth,offsetWidth的区别
2015/01/13 Javascript
浅谈angular懒加载的一些坑
2016/08/20 Javascript
Jquery组件easyUi实现手风琴(折叠面板)示例
2016/08/23 Javascript
JavaScript仿微博发布信息案例
2016/11/16 Javascript
Nodejs搭建wss服务器教程
2017/05/24 NodeJs
各种选择框jQuery的选中方法(实例讲解)
2017/06/27 jQuery
JS 组件系列之Bootstrap Table 冻结列功能IE浏览器兼容性问题解决方案
2017/06/30 Javascript
使用JavaScript实现点击循环切换图片效果
2017/09/03 Javascript
Vue-cli3项目配置Vue.config.js实战记录
2018/07/29 Javascript
js实现文字头像的生成代码
2020/03/07 Javascript
深入解析Python编程中JSON模块的使用
2015/10/15 Python
python利用matplotlib库绘制饼图的方法示例
2016/12/18 Python
django+xadmin+djcelery实现后台管理定时任务
2018/08/14 Python
详解python使用turtle库来画一朵花
2019/03/21 Python
python之拟合的实现
2019/07/19 Python
设置jupyter中DataFrame的显示限制方式
2020/04/12 Python
基于tf.shape(tensor)和tensor.shape()的区别说明
2020/06/30 Python
加拿大健康、婴儿和美容产品在线购物:Well.ca
2016/11/30 全球购物
波兰最大的宠物用品网上商店:FERA.PL
2019/08/11 全球购物
.NET现在共支持多少种语言
2014/02/26 面试题
简历中求职的个人自我评价
2013/12/03 职场文书
恐龙的灭绝教学反思
2014/02/12 职场文书
班干部学习委员竞选稿
2015/11/20 职场文书
Anaconda安装pytorch和paddle的方法步骤
2022/04/03 Python
python+pytest接口自动化之token关联登录的实现
2022/04/06 Python
Android存储中最基本的文件存储方式
2022/04/30 Java/Android
linux目录管理方法介绍
2022/06/01 Servers