我想立即从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的参数)?
答案 0 :(得分:0)
您的问题标题是" ZF3:在PhpRenderer中读出url参数"在你的问题里,你问了另一个。
您可以在任何控制器中获取此功能(在ZF3中获取URL参数):
$URLparam = (string)$this->params()->fromQuery('parameter', '');
答案 1 :(得分:0)
对于routeMatch,如果您只使用MvcEvent;
$event->getRouteMatch()
如果你有容器;
$container->getApplication()->getMvcEvent()->getRouteMatch();
如果您想在视图中访问routeMatch,除了像tasmaniski/zend-current-route
这样的查看助手之外别无其他