Как передать $ _POST с одного контроллера на другой в Кохане - PullRequest
3 голосов
/ 05 сентября 2011

У меня есть проект на основе шаблона в Kohana.Форма поиска отображается как часть общих разделов шаблона.Механизм поиска обрабатывается контроллером, называемым календарем.Я хочу вызвать календарь контроллера в пользовательском контроллере, чего я мог бы достичь

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

Но в календаре $ _POST пустоКак я могу получить доступ к $ _POST, который был установлен путем отправки формы поиска в пользовательский контроллер?

Ответы [ 2 ]

2 голосов
/ 05 сентября 2011

Request::redirect() прекращает выполнение и отвечает заголовком перенаправления местоположения 302. Конечно, вы не можете получить доступ к предыдущему POST на новой странице.

Подзапрос HMVC может использоваться для таких случаев:

$response = Request::factory('calendar')
    ->method(Request::POST)
    ->post($this->request->post())
    ->execute();
0 голосов
/ 07 сентября 2011

Вероятно, лучшее решение вашей проблемы, если вы не можете использовать подзапрос 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');
...