2010-04-15 104 views
2

我想訪問我的視圖幫助器中的特定變量(在U​​RL中)的值。我怎樣才能做到這一點?我可以得到我的控制器名稱:Zend_Controller_Front :: getInstance() - GT; getRequest() - GT; getControllerName(); ,但我不知道變量...如何在Zend視圖助手中訪問url變量的值?

在此先感謝!

回答

2

最明顯的是:

// will retrieve any param set in the request (might even be route param, etc) 
Zend_Controller_Front::getInstance()->getRequest()->getParam('someParam'); 

// $_POST 
Zend_Controller_Front::getInstance()->getRequest()->getPost('somePostParam'); 

// $_GET 
Zend_Controller_Front::getInstance()->getRequest()->getQuery('someQueryStringParam'); 

也看看API文檔:
General
Zend_Controller_Request_Http (1.10)

+0

感謝您的快速響應!正是我需要的:-) – koko 2010-04-15 13:49:56

4

您可以從Zend_Controller_Front獲得請求對象:

abstract class App_View_Helper_Abstract extends Zend_View_Helper_Abstract 
{ 
    /** 
    * @var Zend_Controller_Front 
    */ 
    private $_frontController; 

    /** 
    * Convience function for getting a request parameter from the request 
    * object in a view helper 
    * @param string $name The name of the request parameter 
    * @param mixed $default The value to return if $name is not defined in the 
    * request 
    * @return mixed The value of parameter $name in the request object, 
    * or $default if $name is not defined in the request 
    */ 
    public function getRequestVariable ($name, $default = null) 
    { 
     return $this->getRequest()->getParam($name, $default); 
    } 

    /** 
    * 
    * @return Zend_Controller_Request_Abstract 
    */ 
    public function getRequest() 
    { 
     return $this->getFrontController()->getRequest(); 
    } 

    /** 
    * @return Zend_Controller_Front 
    */ 
    private function getFrontController() 
    { 
     if (empty($this->_frontController)) 
     { 
     $this->_frontController = Zend_Controller_Front::getInstance(); 
     } 
     return $this->_frontController; 
    } 
} 

現在你可以使用getRequestVariable - 方法從延長App_View_Helper_Abstract

所有視圖助手
+0

感謝您的快速回復,但我正在尋求其他回覆。 – koko 2010-04-15 13:50:21

+0

當然。我的代碼完全一樣,只是給你所有的視圖助手一個方法來檢索一個參數而不重複代碼。 – PatrikAkerstrand 2010-04-15 14:15:14

相關問題