Symfony2 - form_start function customise in twig

Roberto Rizzi picture Roberto Rizzi · Sep 16, 2013 · Viewed 27.6k times · Source

Form helpers form_start and form_end are useful in twig:

{{ form_start(form) }}
{{ form_end(form) }}

I can customise some parameters like the method or the action. But I need to customise others parameters like the class or add the form-enctype.

Can I do it? Should i set up it into the FormType.php?

Since now I simply try to add my customised value to the twig function like below:

{{ form_start(form, {'class': 'myclass', 'action': 'myaction'}) }}
// fields...
{{ form_end(form, {'render_rest': true}) }}

But in this case, for example, the class does not appear.

Answer

Ahmed Siouani picture Ahmed Siouani · Sep 16, 2013

As form_start has the following signature,

form_start(view, variables)

And as class doesn't represent a valid variable name. You need to specify your class as a key/value array using the attr attribute.

Then, try ...

{{ form_start(form, {'class': 'myclass', 'action': 'myaction', 'attr': {'class': 'your_class_name'}}) }}

Also ...

  • You should be sure that your Type fileds are well defined in order to let the form_start helper set the right form-enctype.

  • The form_enctype(formView) helper is deprecated since Symfony 2.3.