2012-02-22 100 views
0

传递变量要求在这些的PHP框架之一,我注意到一个posibility请求在行动$ request对象这个 - >请求 - > PARAMNAMEZend框架 - 在控制器

class MyRequest extends Zend_Controller_Request_Http{ 

    public $params = array(); 

    public function __construct() { 
     $this->params = $this->getParams(); 
     parent::__construct(); 
    } 

    public function __get($name) { 
     if (isset($this->_params[$name])) { 
      return $this->_params[$name]; 
     } 
    } 

    public function __isset($name) { 
     return isset($this->_params[$name]); 
    } 

} 
在我myController的

已添加变量请求

public $request = null; 

如何将该标准请求更改为我的标准请求?

public function __construct(
    Zend_Controller_Request_Abstract $request, 
    Zend_Controller_Response_Abstract $response, 
    array $invokeArgs = array()) { 
     $request = new MyRequest(); 
     parent::__construct($request, $response, $invokeArgs); 
     $this->request = $this->getRequest(); 
    } 
  • 此功能尚未给出结果。

选项1是让法_initRequest()在引导:

protected function _initRequest() { 
    $this->bootstrap ('FrontController'); 
    $front = $this->getResource ('FrontController'); 
    $request = $front->getRequest(); 
    if (null === $front->getRequest()) { 
     $request = new MyRequest(); 
     $front->setRequest ($request); 
    } 
    return $request; 
} 
+0

构造函数属于类MyController – atherdon 2012-02-22 12:26:21

回答

0

试试这个它可以帮助你:

在控制器文件

public function exampleAction(){ 
    $result = $this->_request; 

    $model = new Employer_Model_JobInfo();   
    $results = $model->sample($result); 
} 

// the above line stores the values sent from the client side in $result.then sends that values to Model file with parameter $result .. 

模型文件

class Employer_Model_JobInfo extends Gears_Db_Table_Abstract{ 
    public function sample($param){ 

     $paramVal  = $param->getParam('name'); 
     $paramVal1  = $param->getParam('email'); 

    } 
} 

nameemail是什么名字用于发送数据从客户端到服务器。

1

有点脏,未经测试的解决方案。很想听听它是否有效。

//Bootstrap: 

public function _initRequest() 
{ 
    $this->bootstrap('frontController'); 
    $front = $this->getResource('frontController'); 
    $front->setRequest(new MyRequest()); 
} 
+0

我在想这个选项,我真的不喜欢它 – atherdon 2012-02-22 18:39:57