2014-09-13 2 views
1

В моем приложении Yii я хочу создать модуль администратора. До сих пор я создал модуль под названием «admin» и создал страницу входа, в которой используется макет: layout.php. Внутри модуля администрирования я хочу добавить все мои подмодули. Поэтому я сначала создал подмодуль «приборная панель». Теперь я хочу, чтобы все мои подмодули имели макет admin.php.Наследовать макет из родительского модуля в подмодулях Yii

Как это получить?

Моя структура приложения выглядит следующим образом:

application 
    modules 
     admin 
      assets 
      controllers 
      views 
       default 
        - index.php 
        - login.php 
       layouts 
        - admin.php 
        - login.php 
      modules 
       dashboard 
        assets 
        controllers 
        views 

Я установил макет для страницы входа, как это (внутри контроллера по умолчанию из модуля администратора):

$this->layout = "login"; 
    $this->pageTitle = "Beheersysteem"; 
    $this->render('login', array('model' => $model)); 

Внутри инициализации() в файле AdminModule.php. Я также установил компоновку следующим образом:

public function init() 
{ 
    $this->setImport(array(
     'admin.models.*', 
     'admin.components.*', 
    )); 

    $this->layout = 'admin'; 
} 

Но как мне получить этот макет администратора, работающий в моих подмодулях?

ответ

2

хорошо использовать эту

$this->layout = 'application.modules.admin.views.layouts.admin'; 
+0

Когда я реализуйте свой код внутри функции init() моего модуля, он все равно продолжает загружать макет по умолчанию. Я переместил файл макета: admin.php внутри папки: application.views.layouts и добавил эту строку кода в контроллер моего модуля: public $ layout = '// layouts/admin'; – guuspor

0

Переместить файл макета в папку макетов приложений

application 
    views 
     layouts 

Добавьте следующую строку кода в контроллер модуля

public $layout = '//layouts/admin'; 
Смежные вопросы