【问题标题】:How to put URL parameters into "params" controller plugin of ZF2 Controller?如何将 URL 参数放入 ZF2 控制器的“params”控制器插件中?
【发布时间】:2015-11-01 17:06:06
【问题描述】:

我正在使用 ZF2 模块,但我没有使用完整的 ZF2 框架堆栈。

我需要能够将GET 参数从 URL 字符串拉到我的控制器中。

我创建了一个 Controller,它扩展了 ZF2 的 AbstractActionController。阅读ZF2: Get url parameters in controller后,我使用print $this->params('line');尝试打印$_GET['line']值,但没有任何显示。

简而言之,这应该有效,但没有:

//ZF2 equivalents of print $_GET['line'] (either one should work)
print $this->params('line'); 
print $this->getEvent()->getRouteMatch()->getParam('line');

我想这是由于缺乏从$_GET 填充params 的机制。如何将 ZF2 机制的那部分放入我的代码中?

这值得麻烦吗?例如,如果我需要引入路由、事件并将整个 ZF2 框架引入我的代码中,并显着地重新连接我的应用程序以使其工作,我可能只想坚持$_GET 方法,至少现在是这样.

【问题讨论】:

  • Zend 框架因其模块化而总是受到称赞。然而,实际上人们喜欢使用全栈。这很好,我认为这是最好的之一。但是你是少数几个应该证明模块化可以达到框架核心的例子之一。我很好奇这个问题的答案是什么。

标签: php zend-framework2 params


【解决方案1】:

我不确定这是否是一个很大的答案,但它至少可能会有所帮助。所以,免责声明:我没有尝试过。

所以你扩展了AbstractActionController,这很好,因为它充满了功能。 AbstractActionController 实现了一个完整的接口列表,使控制器监听 MvcEvents,使用服务定位器等。如果你没有为控制器提供服务定位器等,那么扩展 AbstractActionController 是没有意义的。请改用DispatchableInterface!另外,请阅读:http://framework.zend.com/manual/current/en/modules/zend.mvc.controllers.html

现在,如果您确实想使用AbstractActionController 的功能,您将需要\Zend\Mvc 包。它带有所有功能或开销 - 其中哪种情况取决于您的应用程序。请注意,Zend MVC 应用程序实际上性能非常好,但如果您不打算重用这些组件,那么实际上没有它们可能会更好。该手册实际上指示了如何引导 Zend MVC:http://framework.zend.com/manual/current/en/modules/zend.mvc.intro.html#bootstrapping-an-application。如果你成功引导,你应该没问题,并且能够使用你的控制器。

【讨论】:

    【解决方案2】:

    你可以试试

    print $this->params()->fromQuery('line');
    

    据此http://zf2cheatsheet.com/

    【讨论】:

      猜你喜欢
      • 2023-03-19
      • 1970-01-01
      • 2022-09-27
      • 2012-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多