从子模块Yii中的父模块继承布局


Inherit layout from parent module in submodules Yii

在我的Yii应用程序中,我想创建一个管理模块。到目前为止,我已经创建了一个名为"admin"的模块,并使用layout.php创建了一个子模块。因此,我首先创建了子模块"仪表板"。现在我希望我所有的子模块都有布局admin.php。

我该怎么做?

我的应用程序结构如下:

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

我为登录页面设置了这样的布局(在管理模块的defaultController中):

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

在AdminModule.php文件的init()函数中,我还设置了如下布局:

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

但是我如何让这个管理布局在我的子模块中工作呢?

我们使用这个

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

将布局文件移动到应用程序布局文件夹

application
    views
        layouts

将以下代码行添加到模块的控制器

public $layout = '//layouts/admin';