2014-11-20 2 views
1

Я создаю мой настраиваемую форму таким образом:Как установить имя формы в Symfony2?

$messageForm = $this->createFormBuilder(new MessageEmailForm()) 
     ->add('name', 'text') 
     ->getForm(); 

Я хотел бы изменить имя формы, но я не знаю, как это сделать, и одновременно держать класс MessageEmailForm в FormBuilder. Я пробовал что-то вроде этого:

$this->createFormBuilder(new MessageEmailForm(), "myCustomFormName") 

и т.п., но это не сработает. Мне нужен именно этот результат:

<form name="myCustomFormName" ... > 

@ EDIT // я нашел информацию о моей проблеме, похоже, я должен использовать следующий код, но я понятия не имею, где я должен использовать ...

$this->get('form.factory')->createNamedBuilder 

ответ

3

Если вы хотите создать это:

<form name="myCustomFormName" ... > 

Просто добавьте это в шаблон веточку:

{{ form_start(form, {'attr': { 'name':'myCustomFormName' }}) }} 
+0

Это решение по книге;) –

+1

я не могу этого сделать потому что у меня есть 2 формы на 1 странице, и даже если я установил имя в

, он не будет работать для ввода ниже, потому что они получат имя «form [name]», а не «myCustomFormName [имя]». – ZaquPL

0

Не могли бы вы добавить атрибут в свой шаблон ветки.

{# src/Acme/TaskBundle/Resources/views/Default/new.html.twig #} 
<form action="{{ path('task_new') }}" name="myCustomFormName" method="post" {{ form_enctype(form) }}> 
    {{ form_widget(form) }} 

    <input type="submit" /> 
</form> 
Смежные вопросы