Intereting Posts
Как создать php-форму электронной почты? Как правильно получить fopen to timeout Doctrine 2 добавляет новое поле, которое автоматически генерирует значения последовательности Извлечение урду / арабских фраз / предложений из строки Как управлять запросами с ограниченным API-интерфейсом PHP PDO Подготовленный запрос оператора, не обновляющий запись WordPress / Woocommerce: как получить определенную дочернюю категорию по «id» из идентификатора родительской категории PHP как языки, которые предлагают встроенный HTML PHP, .htaccess, защита от DDoS и быстрого запроса Вложенные поля коллекции в Sonata Admin (2.3) Получение значения поля из массива объектов с помощью ключа внутри объекта сеанс eclipse xdebug никогда не завершается Разница в области переменных между областью PHP и C: не совсем то же самое? Как разбить строку из содержимого сетки и добавить элемент html условие / правило перезаписи htaccess для поддоменов

Перенаправление с встроенного контроллера

Я использую встроенный контроллер для отображения формы, которая используется на нескольких страницах:

прут

{% render 'Bundle:Controller:someForm' %} 

контроллер

 public function someFormAction() { // Some logic ... if ($form->isValid()) { ... $this->get('session')->setFlash('successful', "Woey!"); return $this->redirect($this->generateUrl('homepage')); } return $this->render('Bundle:Template:form.html.twig', array('form' => $form->createView())); } 

Мне нужно перенаправить обратно на домашнюю страницу после того, как форма была успешно отправлена ​​в качестве части шаблона дизайна post-redirect-get . Если я использую его, как описано выше, я получу исключение, так как ответ от встроенного контроллера был 302 вместо 200 (по крайней мере, я ожидаю, что он будет работать так).

Можно ли перенаправить нормально в такой сценарий? Или я приближаюсь к ситуации (с формой, которая отображается на нескольких страницах) от совершенно неправильного угла?

Для официального ответа Fabien не считает, что Symfony2 будет поддерживать эту функцию .

Может быть, это поможет вам. Я использую это, чтобы показать 404 страницы, если ресурс не найден во встроенном контроллере.

 try { return $this->render('MyBundle:Table:list.html.twig', $data); } catch(\Twig_Error_Runtime $e) { if($e->getPrevious() instanceof NotFoundHttpException) { throw $this->createNotFoundException(); } else throw $e; } 

Вы можете создать RedirectHttpException , которое будет содержать ваши данные перенаправления и выбросить его во встроенный контроллер. Затем перенаправляйте в родительский контроллер.