2010-04-15 111 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

相关问题