如何在 Zend Framework 2.2 中为每个不同的模块设置不同的布局文件。
例如,我想为“Admin”和“Application”模块设置不同的布局。
如何在 Zend Framework 2.2 中为每个不同的模块设置不同的布局文件。
例如,我想为“Admin”和“Application”模块设置不同的布局。
Rob Allen 的一种方法在config/autloload.php
:
array(
'module_layouts' => array(
'Application' => 'layout/application',
'ZfcUser' => 'layout/user',
),
);
Evan Coury的另一种方法- ZF2 模块系统 IIRC 的主要作者 - 在Module.php
您的模块的文件中使用它:
namespace MyModule;
use Zend\ModuleManager\ModuleManager;
class Module
{
public function init(ModuleManager $moduleManager)
{
$sharedEvents = $moduleManager->getEventManager()->getSharedManager();
$sharedEvents->attach(__NAMESPACE__, 'dispatch', function($e) {
// This event will only be fired when an ActionController under the MyModule namespace is dispatched.
$controller = $e->getTarget();
$controller->layout('layout/alternativelayout');
}, 100);
}
}
希望其中之一对您有用。