Zend Framework - передача запроса переменной в контроллере - PullRequest
0 голосов
/ 22 февраля 2012

В одной из этих фреймворков php я заметил возможность запрашивать объект Request в действии как $ this-> request-> paramName

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 - метод make _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;
}

Ответы [ 2 ]

1 голос
/ 22 февраля 2012

Немного грязное и непроверенное решение.Хотелось бы услышать, если это работает.

//Bootstrap:

public function _initRequest()
{
    $this->bootstrap('frontController');
    $front = $this->getResource('frontController');
    $front->setRequest(new MyRequest());
}
0 голосов
/ 22 февраля 2012

Попробуйте, это может вам помочь:

в файле контроллера

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');

    }
}

name и email - это то имя, которое использовалось для отправки данных с клиента на сервер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...