Personalizar formularios en la vista en Symfony2

Personalizar formularios en la vista en Symfony2

Hoy veremos como personalizar formularios en la vista en Symfony2.

Ya tenemos nuestro formulario creado y con el código necesario en el controlador.

<?php

namespace Pruebas\EjemploBundle\Form;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;

class PostsType extends AbstractType
{
    /**
     * @param FormBuilderInterface $builder
     * @param array $options
     */
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('title','text',array("required"=>true,
                                                 'attr' => array('class'=>'form-control')
                                            ))
            ->add('description','textarea',array("required"=>true,
                                                 'attr' => array('class'=>'form-control')
                                            ))
            ->add('Guardar',"submit",array('attr' => array('class'=>'btn btn-success')))
        ;
    }
    
    /**
     * @param OptionsResolverInterface $resolver
     */
    public function setDefaultOptions(OptionsResolverInterface $resolver)
    {
        $resolver->setDefaults(array(
            'data_class' => 'Pruebas\EjemploBundle\Entity\Posts'
        ));
    }

    /**
     * @return string
     */
    public function getName()
    {
        return 'pruebas_ejemplobundle_posts';
    }

En la vista podemos ir llamando a cada input del formulario y así poder manipularlo más.

<div class="col-lg-6">
    <h1>Formulario en Symfony2</h1> 
    
    {#{form(form)}#}
    
    {{form_start(form)}}
        
        {{form_errors(form.title)}}
            <label>{{"Mi titulo"}}</label>
        {{form_widget(form.title)}}
        
    {{form_end(form)}}
    victorroblesweb.es
</div>

Más información:
Formularios en Symfony2

Víctor Robles WEB

Autor: Victor

Desarrollador web - Formador online - Blogger

Compartir este post