Zend framework2 如何获取在ZF2中渲染的当前视图

Zend framework2 如何获取在ZF2中渲染的当前视图,zend-framework2,viewrendering,Zend Framework2,Viewrendering,有没有一种方法可以在zend framework 2中获得当前渲染的视图 我相信这应该是可能的事件系统,但我似乎不能使它的工作 我想获取这些信息的原因是,我可以自动包含一个同名的.js文件,这将节省我每次在操作中指定此规则的时间 非常感谢,, Tom我不太清楚在ZF2中呈现当前视图是什么意思,但下面是如何自动添加以动作命名的js文件。把这个放在你的控制器里: public function onDispatch(MvcEvent $mvcEvent) { $renderer = $thi

有没有一种方法可以在zend framework 2中获得当前渲染的视图

我相信这应该是可能的事件系统,但我似乎不能使它的工作

我想获取这些信息的原因是,我可以自动包含一个同名的.js文件,这将节省我每次在操作中指定此规则的时间

非常感谢,,
Tom

我不太清楚在ZF2中呈现当前视图是什么意思,但下面是如何自动添加以动作命名的js文件。把这个放在你的控制器里:

public function onDispatch(MvcEvent $mvcEvent)
{
    $renderer = $this->serviceLocator->get('Zend\View\Renderer\PhpRenderer');
    $actionName = $mvcEvent->getRouteMatch()->getParam('action');
    $jsFile = $actionName . '.js';
    $baseUrl = $mvcEvent->getRouter()->getBaseUrl();
    $renderer->headScript()->appendFile($baseUrl . '/js/' . $jsFile);

    return parent::onDispatch($mvcEvent);
}
当然,您可能需要调整js文件位置和名称的代码。onDispatch方法将在操作之前自动调用。

谢谢您,Wunibald

您的示例工作得非常好,我在下面对其进行了修改,将其附加到事件,以便它适用于每个控制器/模块。为了做到这一点,我已经将它包含在我的应用程序模块的onBootstrap函数中

$events = StaticEventManager::getInstance();

    $events->attach('Zend\\Mvc\\Application', 'dispatch', function(\Zend\EventManager\Event $event)
    {
        $baseUrl = $event->getRouter()->getBaseUrl();
        $renderer = $event->getApplication()->getServiceManager()->get('Zend\View\Renderer\PhpRenderer');

        $action = $event->getRouteMatch()->getParam('action');
        $controller = $event->getRouteMatch()->getParam('controller');

        if (strlen($controller) > 0)
        {
            list($module, $_null, $controller) = explode('\\', $controller);

            $renderer->headScript()->appendFile($baseUrl . '/module/' . $module . '/view/' . strtolower($module) . '/' . strtolower($controller) . '/' . strtolower($action) . '.js');
            $renderer->headScript()->appendFile($baseUrl . '/module/' . $module . '/view/' . strtolower($module) . '/' . strtolower($module) . '.js');
        }
    });

再次感谢您为我指出了正确的方向。

您是指视图还是布局?在什么阶段你需要这些数据?