1.0.22 2015-10-28 21:36 UTC


Latest Stable Version Total Downloads

The Netvlies FormBundle enables users to create basic forms through the Sonata Admin Bundle. It includes form configuration, storage of results, sending of notifications when a form is filled in and even the possibility to export form results through the Sonata list view.

Form Admin

Forms created using the FormBundle can be retrieved using the form service or be directly shown by using the show_form function provided by the FormBundle Twig extension.



Install the bundle

$ curl -s | php
$ php composer.phar require netvlies/form-bundle

Composer will install the bundle to your project's vendor/netvlies directory.

Enable the bundle via the kernel

// app/AppKernel.php

public function registerBundles()
    $bundles = array(
        // ...
        new Netvlies\Bundle\NetvliesFormBundle\NetvliesFormBundle(),
        new Gregwar\CaptchaBundle\GregwarCaptchaBundle(),


By default the bundle uses default Symfony form rendering and provides configuration to customize the templates used.

        form: MyBundle:Form:form.html.twig
        fields: MyBundle:Form:fields.html.twig

Read the documentation on form customization for more information on tweaking the form layout for your project.


This bundle requires no specific routing configuration.


After installation and configuration, the service can be directly referenced from within your controllers.

public function indexAction($formId)
    $form = $this->get('netvlies.form')->get($formId);


Or directly from the view.

{{ show_form(formId) }}

Form submit and success handling

The bundle provides a default success listener which handles default functionality like storing a result and sending a confirmation email (when enabled through the admin). Of course you can implement your own application specific success handling by overriding the default listener (netvlies.listener.form.success) or attaching an additional listener. Whichever option you prefer. The same holds for the submit listener, which handles the form posts.

Attaching an additional listener

// app/config/services.yml

    class: Acme\DemoBundle\EventListener\FormSuccessListener
      - [ setContainer, [@service_container] ]
      - { name: kernel.event_listener, event: form.success }

Overriding the default listener

// app/config/services.yml

    class: Acme\DemoBundle\EventListener\FormSuccessListener
      - [ setContainer, [@service_container] ]
      - { name: kernel.event_listener, event: form.success }


The bundle makes use of the Symfony validation messages and provides translation files for bundle specific captions. All of these translations can be overridden by creating your own translation files and putting them in one of the directories specified in the translations documentation.

For instance, to customize the messages for your application, you could create the following translations file.

// app/Resources/translations/

This value should not be blank.: Dit veld mag niet leeg zijn.
This value is not a valid email address.: Dit is geen geldig e-mailadres.


You can contribute to this bundle by issuing a pull request. The following are improvements we would like to see implemented somewhere in the near future.

  • File upload field
  • Easy injection / registration of custom field types
  • Functional tests

Please note that the goal of this bundle is enabling the end user to easily create basic forms and not to create a complex one-bundle-fits-all solution that handles all possible types of forms. So please keep it simple.