在我的Yii應用程序中我有一個名爲admin的模塊,所以模塊類是AdminModule,它擴展了CWebModule類並位於AdminModule.php文件中。根據文檔,CWebModule具有layout
屬性,該屬性在所有模塊控制器之間共享,以防控制器本身沒有定義任何佈局。如何爲Yii模塊中的所有控制器設置佈局?
我的控制器沒有任何佈局定義和AdminModule.php我把這個:
$this->layout='webroot.themes.bootstrap.views.layouts.column2';
$this->layoutPath = Yii::getPathOfAlias('webroot.themes.bootstrap.views.layouts');
然而,我在管理模塊控制器仍然使用一些其他的佈局,我認爲這是在定義的組件目錄中的Controller.php。這是爲什麼?如何爲特定模塊設置共享佈局?
感謝您的答覆。看到我的答案 - 它在init()中是可行的,我剛剛完成了錯誤的代碼。除此之外,我認爲把這些東西放到'beforeControllerAction()'中是不符合語義的。我不確定,但是我會使用這個函數來指定在控制器被觸發之前必須執行的**動作**,而不是進行一些配置更改。 – petiar
因爲我經歷了一些票據,有些人詢問有關設置佈局在初始化時無法使用。如果它與你一起工作,它會很好,因爲它解決了你的問題。 –