ZF2用户组特定的布局



我有一个有3种不同布局的项目,1种布局用于登录页面,1种布局用于管理员和编辑,第三种布局用于普通用户,管理员也可以访问(这是3个不同页面的布局,您可以填写调查,这可能是3个提到的用户组)。

目前我正在使用EdpModuleLayouts用于此目的,直到现在才做得很好。因为现在我需要根据访问它的用户组来调整第三个布局。

你知道该怎么做吗?

你可以听你的zf2 MVC事件,并根据你的标准改变你的布局。这是您的应用程序Module.php的示例。

public function onBootstrap(MvcEvent $e)
{
    $application =  $e->getApplication();
    $serviceManager = $application->getServiceManager();
    $eventManager = $application->getEventManager();
    $sharedManager = $eventManager->getSharedManager();
    // DISPATCH EVENT
    $sharedManager->attach('ZendMvcControllerAbstractActionController', 'dispatch', function( MvcEvent $e) use ($serviceManager) {
        // get your instance to locate current user group or something else
        $auth = $serviceManager->get('Some/Auth/Service');
        $userGroup = $auth->getUserGroupFromCurrentUser();
        $controller      = $e->getTarget();
        if( $userGroup == 'someGroup' )
        {
            $controller->layout('layout/somelayoutname');
        } else {
            $controller->layout('layout/someotherlayoutname');
        }
    }, 50 );
}

相关内容

  • 没有找到相关文章

最新更新