#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')) }}
Таким образом, вы можете «внедрить» любой метод, который вы хотите, на все свои страницы. Затем вы должны установить действие формы на любое действие контроллера, чтобы он мог правильно его обработать.