首页 文章

ZF3:在PhpRenderer中读出url参数

提问于
浏览
0

我想立即从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

    你的问题 Headers 是“ZF3:在PhpRenderer中读出url参数”,而在你问的另一个问题里面 .

    你可以在任何控制器中获取它(在ZF3中获取URL参数):

    $URLparam = (string)$this->params()->fromQuery('parameter', '');
    
  • 0

    对于routeMatch,如果你有一个MvcEvent就可以使用;

    $event->getRouteMatch()
    

    如果你有容器;

    $container->getApplication()->getMvcEvent()->getRouteMatch();
    

    如果你想在视图中访问routeMatch,除了像tasmaniski/zend-current-route之类的视图助手之外没办法

相关问题