如何将URL参数放入ZF2控制器的“params”控制器插件中?

时间:2015-10-16 19:44:59

标签: php zend-framework2 params

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

我需要能够将GET参数从URL字符串中提取到我的Controller中。

我创建了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');

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

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

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:0)

您可以尝试

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

根据此http://zf2cheatsheet.com/