Php Zend Framework:如何附加非默认布局

Php Zend Framework:如何附加非默认布局,php,zend-framework,Php,Zend Framework,我已经创建了一个模块“admin”。我还为这个管理模块创建了一个布局。如何将此布局永久附加到“管理”模块。有人能建议我在哪里以及如何为此编写代码吗。是否在引导文件中?您可以为布局脚本指定替代路径: if (!$registered) { //for PUBLIC role Zend_Layout::getMvcInstance()->setLayoutPath(APPLICATION_PATH.'/layouts/scripts/pub'); } else { //For regist

我已经创建了一个模块“admin”。我还为这个管理模块创建了一个布局。如何将此布局永久附加到“管理”模块。有人能建议我在哪里以及如何为此编写代码吗。是否在引导文件中?

您可以为布局脚本指定替代路径:

if (!$registered) {
//for PUBLIC role
  Zend_Layout::getMvcInstance()->setLayoutPath(APPLICATION_PATH.'/layouts/scripts/pub');
} else {
//For registered users
  Zend_Layout::getMvcInstance()->setLayoutPath(APPLICATION_PATH.'/layouts/scripts');
}

您可以为布局脚本指定替代路径:

if (!$registered) {
//for PUBLIC role
  Zend_Layout::getMvcInstance()->setLayoutPath(APPLICATION_PATH.'/layouts/scripts/pub');
} else {
//For registered users
  Zend_Layout::getMvcInstance()->setLayoutPath(APPLICATION_PATH.'/layouts/scripts');
}
在引导文件中

protected function _initAutoloader() {
        $autoloader = new Zend_Application_Module_Autoloader(array(
            'namespace' => '',
            'basePath'  => APPLICATION_PATH . '/modules/default'), array(
            'namespace' => 'Admin',
            'basePath'  => APPLICATION_PATH . '/modules/admin'
        )            
      );
      return $autoloader;

    }
application.ini

phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.params.displayExceptions = 1
includePaths.library = APPLICATION_PATH "/../library"
appnamespace = "Default"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
resources.frontController.defaultModule = "default"
resources.frontController.defaultController = "index"
resources.frontController.defaultAction = "index"
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts"
resources.layout.layout = "layout"
resources.modules = ""
resources.view[] =
在admin的每个控制器中,您需要将这一行添加到init函数以更改布局

$this->_helper->layout()->setLayout(“admin”)

在您的引导文件中

protected function _initAutoloader() {
        $autoloader = new Zend_Application_Module_Autoloader(array(
            'namespace' => '',
            'basePath'  => APPLICATION_PATH . '/modules/default'), array(
            'namespace' => 'Admin',
            'basePath'  => APPLICATION_PATH . '/modules/admin'
        )            
      );
      return $autoloader;

    }
application.ini

phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.params.displayExceptions = 1
includePaths.library = APPLICATION_PATH "/../library"
appnamespace = "Default"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
resources.frontController.defaultModule = "default"
resources.frontController.defaultController = "index"
resources.frontController.defaultAction = "index"
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts"
resources.layout.layout = "layout"
resources.modules = ""
resources.view[] =
在admin的每个控制器中,您需要将这一行添加到init函数以更改布局


$this->_helper->layout()->setLayout(“admin”)

如果这是您所说的模块,您只需将layout.phtml文件添加到模块的layout/scripts/文件夹中即可

如果layout.phtml的名称与admin.phtml不同,只需在控制器中添加以下内容

$this->_helper->layout->setLayout('admin');

它应该并将首先检查模块的布局文件夹,然后检查默认文件夹。

如果这是您所说的模块,您只需将layout.phtml文件添加到模块的布局/脚本/文件夹中即可

如果layout.phtml的名称与admin.phtml不同,只需在控制器中添加以下内容

$this->_helper->layout->setLayout('admin');
它应该并将首先检查模块的布局文件夹,然后检查默认文件夹