1

我正在研究 zf2 并尝试使用 2 种不同的布局。公共模块的 1 个布局和所有其他模块的另一个(私有布局“)。它工作得很好,但我在公共模块中的 zfcuser 模块使用其他布局:/我试过这个:

'template_map' => array(  
    'zfc-user/user/login' => __DIR__ . '/../view/layout/blank.phtml', // blank is my public layout 
),

我没有在我的布局中获取表单,而是在公共布局和“私人”布局中获取表单......有人可以帮助我吗?

4

2 回答 2

3

evan 在此处提供的代码http://blog.evan.pro/module-specific-layouts-in-zend-framework-2将通过一个小的更改来满足您的需求,替换__NAMESPACE__'ZfcUser'以便您正在侦听 ZfcUser 控制器操作

public function init(ModuleManager $moduleManager)
{
        $sharedEvents = $moduleManager->getEventManager()->getSharedManager();
        $sharedEvents->attach('ZfcUser', 'dispatch', function($e) {
        // This event will only be fired when an ActionController under the ZfcUser namespace is dispatched.
        $controller = $e->getTarget();
        $controller->layout('layout/alternativelayout');
    }, 100);
}
于 2013-04-17T10:04:29.487 回答
0

添加到 composer.json

"evandotpro/edp-module-layouts": "1.0"

创建 /module/Application/view/layout/blank.phtml

<?php echo $this->content;

将此添加到 /config/autoload/global.php

return array(
'module_layouts' => array(
    'ZfcUser' => 'layout/blank'
));

最后到 /module/Application/config/module.config.php

'view_manager' => array(

    'template_map' => array(

        //add this line
        'layout/blank' => __DIR__ . '/../view/layout/blank.phtml',
于 2015-07-27T21:55:27.830 回答