经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » PHP » 查看文章
Yii框架视图、视图布局、视图数据块操作示例
来源:jb51  时间:2019/10/14 12:24:56  对本文有异议

本文实例讲述了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);//第二个参数赋值
  9. }
  10.  

视图代码:

  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>
  11.  

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. }
  8.  

公共视图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>
  14.  

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

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

视图activity代码:

  1. <h1> Hello <?=$page_name?></h1>
  2.  

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

Yii 视图数据块

控制器代码:

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

公共布局文件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>
  20.  

视图student代码:

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

视图teacher代码:

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

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

更多关于Yii相关内容感兴趣的读者可查看jb51专题:《Yii框架入门及常用技巧总结》、《php优秀开发框架总结》、《smarty模板入门基础教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

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

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号