如何在Kohana中将$ _POST从一个控制器传递到另一个控制器

时间:2011-09-05 10:02:16

标签: kohana-3

我在Kohana有一个基于模板的项目。搜索表单将呈现为模板的常见部分的一部分。搜索机制由称为日历的控制器处理。我想在用户控制器中调用控制器日历,我可以通过

来实现
$this->request->redirect('calendar'); 

但是,在日历中,$ _POST为空。如何通过在用户控制器中提交搜索表单来访问$ _POST?

2 个答案:

答案 0 :(得分:2)

Request::redirect()终止执行并使用302 Location重定向标头进行响应。当然,您无法在新页面上访问以前的POST。

HMVC子请求可用于以下情况:

$response = Request::factory('calendar')
    ->method(Request::POST)
    ->post($this->request->post())
    ->execute();

答案 1 :(得分:0)

如果您无法使用HMVC子请求,问题的最佳解决方案可能是将您需要的$ _POST变量存储到会话中:

$my_var1 = $this->request->post('my_var1');
$my_var2 = $this->request->post('my_var2');

$session = Session::instance();

$session->set('my_var1', $my_var1);
$session->set('my_var2', $my_var2);

$this->request->redirect('calendar');

然后,在日历控制器/操作中,您可以从会话中访问所述变量:

$session = Session::instance();
$my_var1 = $session->get('my_var1');
$my_var2 = $session->get('my_var2');