2010-09-30 41 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 
相關問題