我想立即从ZF2升级到ZF3,并且在我的PhpRenderer中使用URL参数时遇到以下问题 .
在ZF2中,我使用 HelperPluginManager
获取 Application
,然后使用 MvcEvent
,最后使用 routeMatch
:
$routeMatch = $this
->getHelperPluginManager()
->getServiceLocator()
->get('Application')
->getMvcEvent()
->getRouteMatch();
$parameterAction = $routeMatch->getParam('action');
在ZF3中,使用 getServiceLocator()
有一个弃用警告(这是有道理的,因为它只返回 ServiceManager
中的creationContext) . 我想找到一种不触发警告的方法 .
将 Application
配置为工厂使用类(使用 \Zend\Mvc\Service\ApplicationFactory::class
)也不起作用,因为:
Zend \ View \ HelperPluginManager只能创建Zend \ View \ Helper \ HelperInterface和/或callables的实例 .
有没有办法在我的模板中获取 Application
上下文(或甚至更好的URL参数)?
2 回答
你的问题 Headers 是“ZF3:在PhpRenderer中读出url参数”,而在你问的另一个问题里面 .
你可以在任何控制器中获取它(在ZF3中获取URL参数):
对于routeMatch,如果你有一个MvcEvent就可以使用;
如果你有容器;
如果你想在视图中访问routeMatch,除了像tasmaniski/zend-current-route之类的视图助手之外没办法