Symfony Forms Cookbook

From Littledamien Wiki
Revision as of 00:22, 5 February 2015 by Video8 (talk | contribs) (Created page with "Category:Symfony Category:PHP Category:Web Development == Basic form building == Build a form object and render it in a template from within a controller:<ref>[ht...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Basic form building

Build a form object and render it in a template from within a controller:[1]

// src/AppBundle/Controller/DefaultController.php
namespace AppBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use AppBundle\Entity\Task;
use Symfony\Component\HttpFoundation\Request;

class DefaultController extends Controller
{
    public function newAction(Request $request)
    {
        // create a task and give it some dummy data for this example
        $task = new Task();
        $task->setTask('Write a blog post');
        $task->setDueDate(new \DateTime('tomorrow'));

        $form = $this->createFormBuilder($task)
            ->add('task', 'text')
            ->add('dueDate', 'date')
            ->add('save', 'submit', array('label' => 'Create Task'))
            ->getForm();

        return $this->render('Default/new.html.twig', array(
            'form' => $form->createView(),
        ));
    }
}

Render a form

After passing a form "view" object to a Twig template, the form can be rendered with form helper functions:[2]

{# app/Resources/views/Default/new.html.twig #}
{{ form_start(form) }}
{{ form_widget(form) }}
{{ form_end(form) }}
  1. Building The Form, Symfony forms documentation
  2. Rendering The Form, Symfony forms documentation