Vamos a ver cómo crear formularios en Symfony3. El procedimiento para crear formularios en Symfony 3 es algo diferente que en Symfony2 aunque es muy parecido, solo cambia algo de código.
Abrimos la consola y nos vamos al directorio donde tengamos el proyecto Symfony3 y lanzamos el comando:
php bin/console doctrine:generate:form MiBundle:MiEntidad
Ahora tendremos un fichero nuevo en el directorio Form de nuestro Bundle. En mi caso tengo CursoType.php
También tenemos que definir el tipo de cada campo y añadir el botón submit. En mi caso lo voy dejar así:
<?php namespace AppBundle\Form; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; // Usamos los diferentes tipo de campo use Symfony\Component\Form\Extension\Core\Type\TextType; use Symfony\Component\Form\Extension\Core\Type\SubmitType; use Symfony\Component\Form\Extension\Core\Type\TextareaType; class CursoType extends AbstractType { /** * @param FormBuilderInterface $builder * @param array $options */ public function buildForm(FormBuilderInterface $builder, array $options) { $builder // Definimos el nombre del campo, el tipo y las propiedades ->add('titulo', TextType::class, array("required"=>"required", "attr" =>array( "class" => "form-titulo titulo", ))) ->add('descripcion', TextareaType::class) ->add('precio', TextType::class,array( "label"=>"Precio:" )) ->add('Guardar', SubmitType::class) ; } /** * @param OptionsResolver $resolver */ public function configureOptions(OptionsResolver $resolver) { $resolver->setDefaults(array( 'data_class' => 'AppBundle\Entity\Curso' )); } }
Ahora podemos crear una acción en el controlador.
public function formAction(Request $request){ $curso = new Curso(); $form = $this->createForm(CursoType::class,$curso); return $this->render('AppBundle:Pruebas:form.html.twig', array( 'form' => $form->createView() )); }
Mostramos el formulario en la vista
<h2>Formulario con Symfony3</h2> {{form_start(form, {'action':'', 'method':'POST'})}} {{form_end(form)}}
Con esto ya tendríamos un formulario creado con Symfony 3.
Más información:
http://symfony.com/doc/current/book/forms.html