如何在zend框架2中使用特殊布局?

时间:2012-09-21 05:41:38

标签: php layout zend-framework2

我有一个简单的zf2应用程序,我有2个模块(用户和专辑)。

他们都有自己的布局,但我想为用户使用Album的布局,只是为了让它们更加一致。

我不确定从控制器__contruct,或者在每个单独的操作或module.config.php中委派模块应该使用的布局的最佳方法是什么。

也许在这里:

'template_map' => array(
        'layout/top_nav'        => __DIR__ . '/../view/layout/top_nav.phtml',
        'layout/layout'         => __DIR__ . '/../view/layout/layout.phtml', 

          ^^ probably i should set this path to the layout i want to use ^^

        'posts/index/index'     => __DIR__ . '/../view/posts/index/index.phtml',
        'error/404'             => __DIR__ . '/../view/error/404.phtml',
        'error/index'           => __DIR__ . '/../view/error/index.phtml',
    ),

任何想法?也许是最好的做法?

感谢

编辑:我刚刚做了这个并且有效:

'layout/layout'         => __DIR__ . '/../../album /view/layout/layout.phtml',

但我仍然不确定这是否是最佳做法。

也许我可以设置多个template_map数组并在User控制器中使用它们,在我的情况下

1 个答案:

答案 0 :(得分:4)

编辑:删除我自己的废话,只看到替代方法:)有效

替代方法

Evan Coury也让全球范围内的布局配置成为可能。对于那些不会公开其模块的单个开发人员来说尤其如此。你会在这里找到他的EdpModuleLayouts Module

使用该模块切换布局变得更加简单,如下所示:

<?php
array(
    'module_layouts' => array(
        'ModuleName' => 'layout/some-layout',
    ),
);

希望它有所帮助。