Foros del Web » Programando para Internet » PHP » Symfony »

Symfony2 - validaciones

Estas en el tema de Symfony2 - validaciones en el foro de Symfony en Foros del Web. Hola este es mi primer mensaje en el foro... El caso es que estoy intentando configurar las validaciobnes de formularios, pero no hay manera... simplemente ...
  #1 (permalink)  
Antiguo 23/01/2013, 06:36
 
Fecha de Ingreso: enero-2013
Mensajes: 2
Antigüedad: 11 años, 3 meses
Puntos: 0
Symfony2 - validaciones

Hola

este es mi primer mensaje en el foro...

El caso es que estoy intentando configurar las validaciobnes de formularios, pero no hay manera... simplemente no hace nada y me devuelve al formulario...

dejo el código por si alguien ve que estoy haciendo mal. Gracias


Acme\HelloBundle\Resources\config\validation.yml

Código:
Acme\HelloBundle\Entity\Usuario:
    properties:
      nombre:
            - NotBlank: ~
Acme\HelloBundle\Controller\HelloController
Código:
class HelloController extends Controller {
    //put your code here
    
    public function indexAction(Request $request)
    {
        
        
        $usuario = new Usuario();
        $usuario->setNombre('usuario');
        $usuario->setContrasenia('contrasenia');

        $form = $this->createFormBuilder($usuario)
                ->add('nombre', 'text')
                ->add('contrasenia', 'password')
                ->getForm();


        if ($request->getMethod() == 'POST') {
            $form->bindRequest($request);

            if ($form->isValid()) {
                // realiza alguna acción, tal como guardar la tarea en la base de datos

                $url='entrar/'.$form->getData()->getNombre();
                return $this->redirect($url);
            }
        }        
        
        return $this->render('AcmeHelloBundle:Default:index2.html.twig', array('form' => $form->createView()));        
        
        //return $this->render('AcmeHelloBundle:Default:index.html.twig');
    }    
}

Acme\HelloBundle\DependencyInjection\AcmeHelloExte nsion;
Código:
...
        $yamlMappingFiles = $container->getParameter('validator.mapping.loader.yaml_files_loader.mapping_files');
        $yamlMappingFiles[] = __DIR__.'/../Resources/config/validation.yml';
        $container->setParameter('validator.mapping.loader.yaml_files_loader.mapping_files', $yamlMappingFiles);
...


html.twig
Código:
<form method="POST" action="{{ path('hello') }}">
                        
<div id="username_input">

	<div id="username_inputleft"></div>

	<div id="username_inputmiddle">
                      {{ form_widget(form.nombre, { 'attr': {'onclick': "this.value=''"} }) }}
	</div>

	<div id="username_inputright"></div>

</div>

<div id="password_input">

	<div id="password_inputleft"></div>

	<div id="password_inputmiddle">
                      {{ form_widget(form.contrasenia, { 'attr': {'onclick': "this.value=''"} }) }}
	</div>

	<div id="password_inputright"></div>

</div>

<div id="submit">
	<input type="image" src="{{ asset('bundles/hello/images/submit.png') }}" id="submit1" value="Sign In">
</div>
</form>
  #2 (permalink)  
Antiguo 23/01/2013, 08:05
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Symfony2 - validaciones

Si siempre retorna el formulario es porque falla la validación, te sugiero que compruebes los errores del form con Form::getErrorsAsString y te sugiero que al final de tu form siempre agregues:

Código TWIG:
Ver original
  1. {{ form_rest(form) }}

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #3 (permalink)  
Antiguo 24/01/2013, 09:09
 
Fecha de Ingreso: enero-2013
Mensajes: 2
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Symfony2 - validaciones

Gracias. La verdad es que no devuelve ningún fallo. La regla de validación es bien simple y aun así retorna al formulario. Apuesto más por que algo esté mal escrito/configurado....

Etiquetas: symfony2
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:20.