Yii對不同控制器下的檢視進行渲染
阿新 • • 發佈:2019-01-29
關於不同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');
}
}
?>