本文实例讲述了Yii框架视图、视图布局、视图数据块操作。分享给大家供大家参考,具体如下:
Yii 视图
控制器方法代码:
1
2
3
4
5
6
7
8
9
|
public function actionIndex(){ $data = array ( 'name' => 'zhangsan' , 'age' => 12, 'address' => array ( '北京市' , '朝阳区' ), 'intro' => '我是简介,<script>alert("123");</script>' ); return $this ->renderPartial( 'index' , $data ); //第二个参数赋值 } |
视图代码:
1
2
3
4
5
6
7
8
9
10
|
<?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 视图布局
控制器代码:
1
2
3
4
5
6
7
|
//设置的布局文件 public $layout = 'common' ; public function actionAbout(){ $data = array ( 'page_name' => 'About' ); //render方法会把视图文件common的内容放到$content当中,并显示布局文件。 return $this ->render( 'about' , $data ); } |
公共视图common代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<!DOCTYPE html> <html> <head> <title></title> <meta charset= "UTF-8" > </head> <body> <h1>这是Common内容</h1> <div> <?= $content ?> </div> </body> </html> |
视图about代码,并调用了activity视图:
1
2
|
<h1> Hello <?= $page_name ?></h1> <?php echo $this ->render( 'activity' , array ( 'page_name' => 'activity' ));?> |
视图activity代码:
1
|
<h1> Hello <?= $page_name ?></h1> |
结论:视图引用了公共布局文件,并且在一个视图中调用另一个视图文件。
Yii 视图数据块
控制器代码:
1
2
3
4
5
6
7
8
9
|
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代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
<!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代码:
1
2
3
4
|
<?php $this ->beginBlock( 'webTitle' );?> <?= $page_name ?>页面 <?php $this ->endBlock();?> <h1> Hello <?= $page_name ?></h1> |
视图teacher代码:
1
2
3
4
|
<h1> Hello <?= $page_name ?></h1> <?php $this ->beginBlock( 'webTitle' );?> <?= $page_name ?>页面 <?php $this ->endBlock();?> |
总结:如果需要在视图中改变公共模板中的内容,需要使用block方法,例如上面例子中改变了common页面的title。
希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。
原文链接:https://www.cnblogs.com/gyfluck/p/9100573.html