当前位置:首页 > CMS教程 > 其它CMS > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2022-01-02 13:46:07 浏览: 评论:0 

这篇文章主要介绍了Yii框架视图、视图布局、视图数据块操作,结合实例形式分析了Yii框架相关的视图、布局、控制器及数据相关操作技巧,需要的朋友可以参考下。

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

Yii 视图

控制器方法代码:

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

视图代码:

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

Yii 视图布局

控制器代码:

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

公共视图common代码:

  1. <!DOCTYPE html> 
  2. <html> 
  3. <head> 
  4.   <title></title> 
  5.   <meta charset="UTF-8"
  6. </head> 
  7. <body> 
  8. <h1>这是Common内容</h1> 
  9. <div> 
  10.   <?=$content?> 
  11. </div> 
  12. </body> 
  13. </html> 

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

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

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

视图activity代码:

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

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

Yii 视图数据块

控制器代码:

  1. public $layout = 'common'
  2. public function actionStudent(){ 
  3.   $data = array('page_name'=>'Student'); 
  4.   return $this->render('student',$data); 
  5. public function actionTeacher(){ 
  6.   $data = array('page_name'=>'Teacher'); 
  7.   return $this->render('teacher',$data); 

公共布局文件common代码:

  1. <!DOCTYPE html> 
  2. <html> 
  3. <head> 
  4.   <title> 
  5.     <?php if(isset($this->blocks['webTitle'])):?> 
  6.       <?=$this->blocks['webTitle'];?> 
  7.     <?php else:?> 
  8.       commom 
  9.     <?php endif;?> 
  10.   </title> 
  11.   <meta charset="UTF-8"
  12. </head> 
  13. <body> 
  14. <h1>这是Common内容</h1> 
  15. <div> 
  16.   <?=$content?> 
  17. </div> 
  18. </body> 
  19. </html> 

视图student代码:

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

视图teacher代码:

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

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

Tags: Yii视图布局 Yii视图数据

分享到: