在Zend Framework中,大部分的时间来获得PARAM,我会用Zend Framework:我可以获取GET参数吗?
// from controller
$this->getRequest()->getParam('key');
,但如何才能得到先手PARAMS使用'Zend的方法是什么?或者我只使用$_GET
?有没有VS
$_GET['key'];
在Zend Framework中,大部分的时间来获得PARAM,我会用Zend Framework:我可以获取GET参数吗?
// from controller
$this->getRequest()->getParam('key');
,但如何才能得到先手PARAMS使用'Zend的方法是什么?或者我只使用$_GET
?有没有VS
$_GET['key'];
使用getQuery()
:
$this->_request->getQuery('key');
其他方法可包括
getParam()
检查用户PARAMS第一,然后$ _GET,然后_POST $,返回第一匹配找到或空。
尽量避免直接访问superglobals。
$this->getRequest()->getParam('key');
之间的任何差别的主要区别是,
$_GET['key'];
是对环境的依赖。它要求超全球可用并包含该名称的关键字。这也只是一个简单的数组访问,而
$this->getRequest()->getParam('key');
是一个API方法调用。访问请求被抽象化。不依赖于实际的环境。 Request对象可能是一个模拟。无论是$_GET
还是$_POST
,getParam
方法将始终返回一个值。
将请求放在请求之上会更好,因为它允许更多的解耦,更少的依赖关系,从而使您的应用程序更易于测试和维护。
学习Zend 2's in depth data binding documentation后,我发现最好通过自动访问Params plugin从路径访问参数。利用这个插件,你可以从控制器中获得如下所示的参数。
$this->params('key');
这适用于ZF2
$this->params()->fromQuery('key', 1); // second argument is optional default paramter
我大多只是用'$ _GET','$这个 - > Request()方法 - > getParams()方法'我更经常用得到变量出来的路由 – Hannes 2010-09-30 13:21:03
在你的控制器类中,你可以使用'$ this - > _ getParam('key')'而不是'$ this-> getRequest() - > getParam('key')' - 它有点短。 – 2010-09-30 13:55:12