我在Kohana有一个基于模板的项目。搜索表单将呈现为模板的常见部分的一部分。搜索机制由称为日历的控制器处理。我想在用户控制器中调用控制器日历,我可以通过
来实现$this->request->redirect('calendar');
但是,在日历中,$ _POST为空。如何通过在用户控制器中提交搜索表单来访问$ _POST?
答案 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');