ZF3:在PhpRenderer中读出url参数

时间:2017-11-30 16:05:51

标签: php zend-framework zend-framework3

我想立即从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 个答案:

答案 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

这样的查看助手之外别无其他