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生成静态页面详解
Nov 19 PHP
PHP 全角转半角实现代码
May 16 PHP
shopex中集成的站长统计功能的代码简单分析
Aug 11 PHP
分割GBK中文遭遇乱码的解决方法
Aug 09 PHP
php strnatcmp()函数的用法总结
Nov 27 PHP
ThinkPHP CURD方法之table方法详解
Jun 18 PHP
cakephp打印sql语句的方法
Feb 13 PHP
常见PHP数据库解决方案分析介绍
Sep 24 PHP
使用YII2框架实现微信公众号中表单提交功能
Sep 04 PHP
php使用curl下载指定大小的文件实例代码
Sep 30 PHP
php ajax confirm 删除实例详解
Mar 06 PHP
php+js实现点赞功能的示例详解
Aug 07 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 存取 MySQL 数据库的一个例子
2006/10/09 PHP
php 变量定义方法
2009/06/14 PHP
PHP Try-catch 语句使用技巧
2016/02/28 PHP
破除一些网站复制、右键限制
2006/11/04 Javascript
基于jQuery的input输入框下拉提示层(自动邮箱后缀名)
2012/06/14 Javascript
checkbox全选所涉及到的知识点介绍
2013/12/31 Javascript
JS使用ajax从xml文件动态获取数据显示的方法
2015/03/24 Javascript
JavaScript原型及原型链终极详解
2016/01/04 Javascript
javascript类型系统——undefined和null全面了解
2016/07/13 Javascript
前端分页功能的实现以及原理(jQuery)
2017/01/22 Javascript
AngularJS实用基础知识_入门必备篇(推荐)
2017/07/10 Javascript
深入理解vuex2.0 之 modules
2017/11/20 Javascript
vue中v-model的应用及使用详解
2018/06/27 Javascript
Vue 样式绑定的实现方法
2019/01/15 Javascript
详解vue 自定义marquee无缝滚动组件
2019/04/09 Javascript
Vue filter 过滤器、以及在table中的使用介绍
2020/09/07 Javascript
[00:58]PWL开团时刻DAY5——十人开雾0换5
2020/11/04 DOTA
Python升级导致yum、pip报错的解决方法
2017/09/06 Python
pytorch 常用线性函数详解
2020/01/15 Python
python pip如何手动安装二进制包
2020/09/30 Python
python录音并调用百度语音识别接口的示例
2020/12/01 Python
WoolOvers爱尔兰:羊绒、羊毛和棉针织品
2017/01/04 全球购物
Intimissimi德国网上商店:意大利知名内衣品牌
2018/04/03 全球购物
Notino瑞典:购买香水和美容产品
2019/07/26 全球购物
linux面试题参考答案(11)
2012/05/01 面试题
行政助理岗位职责
2013/11/10 职场文书
中层干部岗位职责
2013/12/18 职场文书
本科毕业生求职信
2014/06/15 职场文书
新闻稿标题
2015/07/18 职场文书
运动会入场词
2015/07/18 职场文书
村主任当选感言
2015/08/01 职场文书
小学大队长竞选稿
2015/11/20 职场文书
2016党员三严三实心得体会
2016/01/15 职场文书
Nginx的rewrite模块详解
2021/03/31 Servers
python通配符之glob模块的使用详解
2021/04/24 Python
使用GO语言实现Mysql数据库CURD的简单示例
2021/08/07 Golang