1. 程式人生 > >Yii對不同控制器下的檢視進行渲染

Yii對不同控制器下的檢視進行渲染

關於不同Controller下使用不同樣式的佈局檔案,比如有“使用者”、“商品資訊”、“商品列表”、“後臺管理”四個子模組,每個模組的標題欄、選單欄都不同,但是每個模組下的頁面除了內容頁,其餘的標題欄、選單欄、腳都一致,所以可以採用下面的方法進行。

1. 第一步

在對應的控制器類中加入

class UserController extends Controller{
    //該控制器下的view資料夾下對應的檢視檔案,如果是render方法渲染,則使用一下的佈局檔案進行實現
public $layout = '//layouts/userLayout';
//其餘程式碼
}

2. 第二步

如果不想使用該控制器下的佈局檔案,可以用一下方法先制定需要渲染的檢視名稱,然後返回其進行呼叫

  $this->layout = 'trainLayout';
  return  $this->render('rulesConfig');

則該控制器下的部分渲染的佈局檔案就是layouts資料夾下的targetRangeLayout.php檔案, 因為Controller這個類中定義了$layout 如果不做此更改,預設的渲染的佈局檔案就是上面這個目錄下的。

此外,制定該方法使用其他樣式的佈局檔案方法,則是在該類的某個方法中新增如下語句:

$this
->layout = ‘nameOfLayout’;//nameOfLayout是放在view/layouts資料夾下的佈局檔案

完成!

例子:

<?php
    class Controller extends CController{
        //該Controller下的函式每一個預設渲染的檢視都是view-->layouts-->test.php
        public $layout = '//layouts/test';
        public function actionTest(){
        //$this->layout = false;//該方法不使用佈局檔案
//不使用預設的test.php檢視進行渲染,使用view-->layouts-->user.php $this->layout = 'user';// return $this->render('test'); } } ?>