Zend - отправка значения в объекте запроса и доступ к нему на контроллере или в представлении - PullRequest
1 голос
/ 02 ноября 2011

Я хочу перенаправить на страницу с контроллера в Zend. Перед перенаправлением я хочу установить некоторые значения в объекте запроса, а затем я хочу получить эти значения на контроллере, куда я перенаправил.

Я могу сделать это по строке запроса, но я не хочу отправлять эти значения в URL.

Пожалуйста, дайте мне знать:

  1. Как я могу установить эти значения в объекте запроса в Zend.
  2. Как получить эти значения после перенаправления.
  3. Какой метод я должен использовать для перенаправления.

Основная цель - избежать использования строки запроса. Дайте мне знать решение.

Заранее спасибо.

Правин

Ответы [ 3 ]

3 голосов
/ 02 ноября 2011

Если сессия неприемлема, тогда я вижу два пути:

  1. использовать метод _forward и выполнить новое действие в области текущего запроса http://framework.zend.com/manual/en/zend.controller.action.html#zend.controller.action.utilmethods

  2. используйте пустую страницу, которая содержит форму со скрытыми элементами, которые будут автоматически отправлены javascript

2 голосов
/ 02 ноября 2011

Вы пробовали использовать это перед перенаправлением

$something = new Zend_Session_Namespace('abc');
$something->other = 123;

и затем извлечь данные с помощью

$something = new Zend_Session_Namespace('abc');
if (isset($something->other))
{
    $my_var = $something->other;//that is 123
}
0 голосов
/ 02 ноября 2011

Вы можете использовать Zend Flashmessenger, хотя он используется для показа сообщений. Вы можете сделать это и для этого также

Предполагая, что вы получите значения ваших сообщений в FooController / barAction

public function barAction(){
$flashMessenger = $this->_helper->getHelper('FlashMessenger');
$val1 = $this->_request->getPost('val1');
$val2 = $this->_request->getPost('val2');
$flashMessenger->addMessage(array('val1' => $val1 ,'val2' => $val2));
$this->_redirect('somecontroller/someaction'); 
}

Тогдав какой-то мере

public function someAction(){
$flashMessenger = $this->_helper->getHelper('FlashMessenger');
$this->view->flashmsgs = $flashMessenger->getMessages();   //This will get you the array  
}
...