gpt4 book ai didi

layout - ZendFramework 2 - 加载不同模块的布局时出错

转载 作者:行者123 更新时间:2023-12-01 09:30:15 27 4
gpt4 key购买 nike

./config/application.config.php

return array(
'modules' => array(
'Application',
'Admin',
)
...

我有 2 组独立的布局,./module/Application/view/layout/layout.phtml./module/Admin/view/layout/layout.phtml

./module/Admin/config/module.config.php

...
'template_map' => array(
'layout/layout' => __DIR__ . '/../view/layout/layout.phtml',
'header' => __DIR__ . '/../view/layout/header.phtml',
'footer' => __DIR__ . '/../view/layout/footer.phtml',
'paginator' => __DIR__ . '/../view/layout/paginator.phtml',
'error/404' => __DIR__ . '/../view/error/404.phtml',
'error/index' => __DIR__ . '/../view/error/index.phtml',
)
...

./module/Application/config/module.config.php

...
'template_map' => array(
'layout/layout' => __DIR__ . '/../view/layout/layout.phtml',
'header' => __DIR__ . '/../view/layout/header.phtml',
'footer' => __DIR__ . '/../view/layout/footer.phtml',
'paginator' => __DIR__ . '/../view/layout/paginator.phtml',
'error/404' => __DIR__ . '/../view/error/404.phtml',
'error/index' => __DIR__ . '/../view/error/index.phtml',
)
...

基本上它们是不同的集合,并且某些内容是不同的。不幸的是,这两个模块只加载位于 ./module/Admin/config/module.config.php

中的布局

我用谷歌搜索,但没有找到任何我想要的解决方案。有人对此有任何想法吗?

最佳答案

您可能有兴趣了解您的配置实际上做了什么。 My Blog Post about this Topic ,可能会让你感兴趣。最终,所有配置文件都将合并为一个。全局配置键不是在每个模块的基础上;)

要实现您的目标,您应该阅读 Evan Courys Blog Post "Module-specific layouts in ZF2"

埃文提供a Module "EdpModuleLayouts"这让事情变得非常容易。但是,如果您的 AdminModule 只需要一种替代布局,那么我建议您只需使用他的博客文章的示例代码,即可通过 AdminModule/Module::onBootstrap 直接为您的 AdminModule 设置替代布局

class Module
{
public function onBootstrap($e)
{
$e->getApplication()->getEventManager()->getSharedManager()->attach('Zend\Mvc\Controller\AbstractActionController', 'dispatch', function($e) {
$controller = $e->getTarget();
$controllerClass = get_class($controller);
$moduleNamespace = substr($controllerClass, 0, strpos($controllerClass, '\\'));
if ('AdminModule' === $moduleNamespace ) {
$controller->layout('layout/admin');
}
}, 100);
}
}

并不是说这会将布局设置为 layout/admin。您需要通过配置提供此 key :

'template_map' => array(
'layout/admin' => 'path/to/admin/module/view/layout/admin.phtml',
)

关于layout - ZendFramework 2 - 加载不同模块的布局时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16277251/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com