Yii 渲染与布局(渲染页面的两种方式)


  1. 渲染页面的两种方式>>>以引入左部菜单栏为例  
  2. 第一种:在前端使用renderPartial。(适用于个别)  
  3.   
  4. <div class="mian'>  
  5.       
  6.     php echo $this->renderPartial('//layouts/left');?>     
  7.     <div class="user-info">  
  8.         <div>...div>  
  9.         <div>...div>  
  10.         <div>...div>  
  11.     div>    
  12. div>   
  13.   
  14. 第二种:通过layout属性指定所要使用的布局文件。(适用于全局)  
  15.     第一步:在控制器中指定使用的布局属性layout所使用的布局文件, 指定的方式有(当前控制器默认继承了Yii的Controller,且Controller中有layout属性,如public $layout='//layouts/column1';):  
  16.         方式一:在当前控制器中重写layout属性,如:public $layout='//layouts/my_column1';  
  17.         方式二:在当前控制器中添加或重写init()方法,并指定layout属性,如  
  18.         public function init(){  
  19.             parent::init();     //保留父类中的init方法  
  20.             $this->layout='//layouts/my_column1';    指定layout属性  
  21.         }  
  22.   
  23.     第二步:假如控制器中的某个方法渲染了某个页面,这里以index页面为例:  
  24.     public function actionIndex() {  
  25.         $this->render( 'list' );  
  26.     }  
  27.   
  28.     第三步:  
  29.       
  30.         <div class="user-info">  
  31.             <div>...div>  
  32.             <div>...div>  
  33.             <div>...div>  
  34.         div>    
  35.   
  36.        
  37.       
  38.     <div class="mian'>  
  39.         php $this->beginContent('//layouts/main'); ?>          
  40.   
  41.         php  
  42.         //左部菜单栏文件left.php的具体代码写在这  
  43.         /*..........................................  
  44.         ..............这是具体菜单代码.............  
  45.         ....(也可以用renderPartial把页面渲染过来)..  
  46.         ..........................................*/  
  47.         ?>  
  48.           
  49.         php echo $content; ?>           
  50.                   
  51.         php $this->endContent(); ?>  
  52.     div>  
  53.   
  54.   
  55.       
  56.     php $this->renderPartial( '//layouts/header' )?>   
  57.     php echo $content; ?>             
  58.     php $this->renderPartial( '//layouts/footer' )?> 

你可能感兴趣的:(YII)