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














