Zend Framework 2 - 在布局中获取控制器和操作名称

2pl*_*lus 0 php zend-framework2

我试图在布局文件中获取控制器名称和操作名称.但不可能.在ZF1中,我们使用Front Controller实例来获取控制器和操作名称.我已经浏览了很多网站.但是没有解决方案.我如何进入ZF2?

net*_*iul 5

控制器及其视图脚本是分离的.实际上,单个请求中可能涉及多个控制器.

如果您希望调度请求的控制器和操作,您可以通过挂钩到dispatch事件并在附加的ViewModel中注入控制器和操作名称来注入它们.

一种方法是在Bootstrap事件中,它应该在Module类中.

public function onBootstrap(\Zend\EventManager\EventInterface $e)
{
    $app = $e->getApplication();
    $app->getEventManager()->attach(
        'dispatch',
        function($e) {
            $routeMatch = $e->getRouteMatch();
            $viewModel = $e->getViewModel();
            $viewModel->setVariable('controller', $routeMatch->getParam('controller'));
            $viewModel->setVariable('action', $routeMatch->getParam('action'));
        },
        -100
    );
Run Code Online (Sandbox Code Playgroud)