Русскоязычный форум, посвященный фреймворку Kohana
http://forum.kohanaframework.su/

При удачном запросе перенаправлять на страницу
http://forum.kohanaframework.su/viewtopic.php?f=31&t=839
Страница 1 из 1

Автор:  pantela [ 17 сен 2014, 23:47 ]
Заголовок сообщения:  При удачном запросе перенаправлять на страницу

Имеется портал, где пользователи добавляют объявления.
При удачном добавлении требуется что бы пользователя редиректила на страницу успешного добавления... Ну и там буду выводиьт статический текст с POST значениями.
Я понимаю что в контролере происходит окончательный ответ о успешном добавлении, и потом тут надо перенаправлять...
Нарыл это http://kohanaframework.org/3.1/guide/ap ... t#redirect
но хз, пока не сообо хорошо разбераюсь в документации...

1. Надо ли в bootstrap.php прописать роут для перенаправлении?

2. Как правильно сделать перенаправление? и передать $_POST параметры, сейчас просто выводиться message сообщение.

Код:
if (isset($_POST['object_add']))
{
   $_POST['captcha'] = Captcha::valid($_POST['captcha']);

   $valid = $this->_model_object->valid_add($_POST);
   if ($valid['check'])
   {
      $res = $this->_model_object->add($_POST,$this->user->id,$this->user->company_id);
      if ($res)
      {

         $block_center->status = true;
         $block_center->message = __('object_add_ok');
      }
      else
      {
         if (isset($valid['errors'])) $this->errors[] = __('db_error');
         $block_center->data = $_POST;
         $block_center->status = false;
         $block_center->errors = $this->errors;
      }

   }
   else
   {
      if (isset($valid['errors'])) $this->errors = array_merge($this->errors,$valid['errors']);
      $block_center->data = $_POST;
      $block_center->status = false;
      $block_center->errors = $this->errors;
   }
}

Автор:  WinterSilence [ 18 сен 2014, 08:13 ]
Заголовок сообщения:  Re: При удачном запросе перенаправлять на страницу

http://kohanaframework.org/3.3/guide-api/HTTP#redirect или http://kohanaframework.org/3.3/guide-ap ... r#redirect
Насчет доп.роута зависит от твоего набора роутов, может надо, а может и нет. При редиректе можно только GET данные передать, следовательно можно передать ,например, id новой записи или сообщение через сессию (что-то вроде https://github.com/WinterSilence/kohana-message , но попроще - тут я явно перемудрил).

Автор:  pantela [ 18 сен 2014, 21:40 ]
Заголовок сообщения:  Re: При удачном запросе перенаправлять на страницу

хмм, наверное передча нового ID лучщий вариант, но тут у меня встал вопрос, напр. я делаю роут, прописываю в контролере проверку если $_POST выполнил запрос удачно перенаправлять на роут, а у роута прописан опять этот контролер, просто другйо метод, шаблон и... стоит как-то через 1 контролер делать или лучще поделить всё это?
Ещё была идея сделать один контролер который будет отвечать за такие сообщение... Дайте пожалуйста совета как правильнее тупо на пальцах.

P.S. Твои ссылки посмотрел, удивило что редирект только GET получает, а какой нибудь виде перенаправления получает POST? Ещё пока не особо хорошо разбираюсь в туториалах Коханы, напр.

Мне бы самый просто пошщаговый пример, как напр. после удачной рег. пользователя перекидывает на другую страницу, где видит текста...

Автор:  WinterSilence [ 21 сен 2014, 09:06 ]
Заголовок сообщения:  Re: При удачном запросе перенаправлять на страницу

Проще и понятнее использовать единый контроллер для CRUD действий. Обычно СUD действия редиректят на страницу R отображающую список, например, пользователей. По поводу "POST редиректа" https://ru.wikipedia.org/wiki/Post/Redirect/Get.

Автор:  pantela [ 22 сен 2014, 21:31 ]
Заголовок сообщения:  Re: При удачном запросе перенаправлять на страницу

Вроде решаю...

Страница 1 из 1 Часовой пояс: UTC + 4 часа [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/