我想訪問我的視圖幫助器中的特定變量(在URL中)的值。我怎樣才能做到這一點?我可以得到我的控制器名稱:Zend_Controller_Front :: getInstance() - GT; getRequest() - GT; getControllerName(); ,但我不知道變量...如何在Zend視圖助手中訪問url變量的值?
在此先感謝!
我想訪問我的視圖幫助器中的特定變量(在URL中)的值。我怎樣才能做到這一點?我可以得到我的控制器名稱:Zend_Controller_Front :: getInstance() - GT; getRequest() - GT; getControllerName(); ,但我不知道變量...如何在Zend視圖助手中訪問url變量的值?
在此先感謝!
最明顯的是:
// 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)
您可以從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
感謝您的快速回復,但我正在尋求其他回覆。 – koko 2010-04-15 13:50:21
當然。我的代碼完全一樣,只是給你所有的視圖助手一個方法來檢索一個參數而不重複代碼。 – PatrikAkerstrand 2010-04-15 14:15:14
感謝您的快速響應!正是我需要的:-) – koko 2010-04-15 13:49:56