Возврат шаблона из расширения Twig

#php #symfony #twig

#php #symfony #twig

Вопрос:

У меня есть форма, которая размещена на многих страницах моего сайта, и я хотел написать расширение Twig для создания и обработки формы. Я подумал, что если я введу службу шаблонов Twig и создам шаблон с отображаемой формой, это сработает. Но я получил циклическую ссылку. Мой вопрос в том, как мне вернуть этот шаблон из расширения?

Комментарии:

1. Не могли бы вы опубликовать коды, которые вы уже сделали?

Ответ №1:

Допустим, у вас есть действие, имеющее вид:

 public function formAction()
{
    //Code goes here with no difference from a regular action
    return $this->render('MyBundle:Base:form.html.twig', array('form' => $form->createView()));
}
  

Допустим MyBundle:Base:form.html.twig , это шаблон Twig со всей разметкой, которая вам понадобится для отображения формы. Допустим, контроллер MyBundle:Form:form включен, и шаблон каждой страницы (кроме шаблона формы) имеет, MyBundle:Base:template.html.twig . В этом шаблоне добавьте следующую строку везде, где пожелаете:

 {{ render(controller('MyBundle:Form:form')) }}
  

Таким образом, вы можете «внедрить» любой метод, который вы хотите, на все свои страницы. Затем вы должны установить действие формы на любое действие контроллера, чтобы он мог правильно его обработать.