Zend - 在请求对象中发送值并在控制器或View上访问它

时间:2011-11-02 08:35:57

标签: php zend-framework zend-form

我想从zend中的控制器重定向到页面。在重定向之前,我想在请求对象中设置一些值,然后我想在我重定向的控制器上获取这些值。

我可以通过查询字符串来完成,但我不想在URL中发送这些值。

请告诉我:

  1. 如何在zend中的请求对象中设置这些值。
  2. 如何在重定向后获取这些值。
  3. 我应该使用哪种方法进行重定向。
  4. 主要目的是避免使用查询sting。让我知道解决方案。

    提前致谢。

    Pravin

3 个答案:

答案 0 :(得分:3)

如果会话不可接受,那么我可以看到两种方式:

  1. 使用_forward方法并在当前请求的范围内执行新操作 http://framework.zend.com/manual/en/zend.controller.action.html#zend.controller.action.utilmethods

  2. 使用包含隐藏元素的表单的空白页面,该页面将由javascript自动提交

答案 1 :(得分:2)

您是否在重定向之前尝试过使用此功能

$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
}

答案 2 :(得分:0)

您可以使用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  
}