Yii - 佈局檔案的動態切換
阿新 • • 發佈:2018-11-30
如果你看了底層Controller的原始碼和Module(模組)的原始碼,那麼你就能很熟練的婉轉佈局切換了。
1、在控制器中切換當前佈局和在方法中動態切換佈局
<?php
namespace app\modules\TestModule\controllers;
use Yii;
use yii\web\Controller;
class IndexController extends Controller
{
//在屬性中宣告
public $layout = "custom1";
public function actionIndex()
{
//在方法中動態切換佈局
$this->layout = "custom2";
$this->render('index',array(
'name' => '譚勇',
'age' => 22
));
}
}
?>
在類屬性中宣告layout 會覆蓋父類Controller 類中的layout 達到切換佈局的目錄。
甚至我們可以在模組檔案中宣告佈局
namespace app\modules\TestModule;
use yii\base\Module;
class TestModule extends Module
{
//當前應用主題
private $theme = 'default';
public function init()
{
//控制器檔案存放目錄
$this->controllerNamespace = 'app\modules\TestModule\controllers';
$dirname = dirname(__FILE__);
//檢視目錄 (包含主題目錄)
$this ->setViewPath($dirname . '/views/' . $this->theme . '/');
//生命佈局名稱
$this->layout = "common";
}
}
然後我們就在default主題下的layouts目錄中去尋找common.php佈局了。