ccc

Symfony Formularios: Validaciones

Muchas de las validaciones no serán necesarias porque ya se harán directamente con HTML5 en el controller.

En el controller:
$form = $this->createFormBuilder($peliculaAux)
                    ->add('titulo', 'text')
                    ->add('anno', 'integer')
                    ->add('director', 'text')
                    ->add('actor', 'text')
                    ->add('email', 'email')
                    ->add('paginaWeb', 'url')
                    ->add('fechaEstreno', 'date', array(
                        'widget' => 'choice',
                                    'format' => 'dd-MM-yyyy',
                                    'pattern' => '{{ day }}-{{ month }}-{{ year }}',
                                    'years' => range(Date('Y'), 1982)
                                       
                        ))
                    ->add('Guardar', 'submit')
                    ->getForm();

Esto para generar el formulario pero una vez que se envie el submit ejecutará las validaciones que hayas definido en el fichero:
/src/edc/peliculasBundle/Resources/config/validation.yml:

edc\peliculasBundle\Entity\Peliculas:
  properties:
    titulo:
      - Type: string
      - NotNull: ~
      - NotBlank: ~
      - Length:
          min: 4
          max: 20
          minMessage: "El título debe tener más de 4 caracteres"
          maxMessage: "El título no puede exceder de 20 caracteres"
    anno:
      - Type:
          type: integer
          message: El valor {{ value }} No es un {{ type }} correcto
      - Length:
          min: 4
          max: 4
          exactMessage: "El año debe ser de 4 caracteres"
    email:
      - Email:
          message: El email "{{ value }}" no es un formato valido de email.
          checkMX: true
    paginaWeb:
      - Url:
         message: El formato "{{ value }}" no es una url correcta
    fechaEstreno:
      - Date: ~

Más tipos de validaciones en:
http://symfony.com/doc/current/book/validation.html#constraints

No hay comentarios:

Publicar un comentario