Js *_*Lim 3 layout module zend-framework2
在 ./config/application.config.php
return array(
'modules' => array(
'Application',
'Admin',
)
...
Run Code Online (Sandbox Code Playgroud)
我有两套独立的布局,./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',
)
...
Run Code Online (Sandbox Code Playgroud)
在 ./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',
)
...
Run Code Online (Sandbox Code Playgroud)
基本上它们是不同的集合,一些内容是不同的.不幸的是,两个模块只加载位于In的布局./module/Admin/config/module.config.php
我用谷歌搜索,但没有提供任何我想要的解决方案.有人对此有任何想法吗?
您可能有兴趣知道您的配置实际上做了什么.关于此主题的博客帖子,您可能会感兴趣.最终,所有配置文件将合并为一个.全局配置键不是基于每个模块;)
为了实现您的目标,您应该阅读Evan Courys博客文章"ZF2中的模块特定布局"
Evan提供了一个模块"EdpModuleLayouts",使事情变得非常简单.但是,如果您只需要一个管理模块的替代布局,那么我建议您只需使用他的博客文章的示例代码,通过您的AdminModule directy设置备用布局AdminModule/Module::onBootstrap
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);
}
}
Run Code Online (Sandbox Code Playgroud)
这不会将布局设置为layout/admin.您需要通过配置提供此密钥:
'template_map' => array(
'layout/admin' => 'path/to/admin/module/view/layout/admin.phtml',
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1914 次 |
| 最近记录: |