2010-09-30 62 views
8

在Zend Framework中,大部分的时间来获得PARAM,我会用Zend Framework:我可以获取GET参数吗?

// from controller 
$this->getRequest()->getParam('key'); 

,但如何才能得到先手PARAMS使用'Zend的方法是什么?或者我只使用$_GET?有没有VS

$_GET['key']; 
+0

我大多只是用'$ _GET','$这个 - > Request()方法 - > getParams()方法'我更经常用得到变量出来的路由 – Hannes 2010-09-30 13:21:03

+1

在你的控制器类中,你可以使用'$ this - > _ getParam('key')'而不是'$ this-> getRequest() - > getParam('key')' - 它有点短。 – 2010-09-30 13:55:12

回答

32

使用getQuery()

$this->_request->getQuery('key'); 

其他方法可包括

  • getParam()不只
  • getQuery()
  • 的getPost()
  • 的getCookie()
  • getServer( )
  • GETENV()

getParam()检查用户PARAMS第一,然后$ _GET,然后_POST $,返回第一匹配找到或空。

尽量避免直接访问superglobals。

12

$this->getRequest()->getParam('key'); 

之间的任何差别的主要区别是,

$_GET['key']; 

是对环境的依赖。它要求超全球可用并包含该名称的关键字。这也只是一个简单的数组访问,而

$this->getRequest()->getParam('key'); 

是一个API方法调用。访问请求被抽象化。不依赖于实际的环境。 Request对象可能是一个模拟。无论是$_GET还是$_POSTgetParam方法将始终返回一个值。

将请求放在请求之上会更好,因为它允许更多的解耦,更少的依赖关系,从而使您的应用程序更易于测试和维护。

0

这适用于ZF2

$this->params()->fromQuery('key', 1); // second argument is optional default paramter 
相关问题