Campo Obligatorio en Formulario: no lo respeta

203 views
Skip to first unread message

juancharlies

unread,
Feb 29, 2012, 11:49:36 AM2/29/12
to symfony-es
Hola...
Recibo un error:
SQLSTATE[23000]: Integrity constraint violation: 1048 Column
'expediente' cannot be null

Es lógico porque este campo es obligatorio....
Y no sé cómo exigir que se rellene en mi formulario...

Uso Symfony2.0.5



intento que el formulario me exija rellenar un campo, y no me vale.
Pongo:
->add('miCampo','text',array('label' => 'Expediente','required' =>
true))


Según he leído esto sólo afecta al 'class=required' del label del
Form.... no sé si es cierto.... y que tengo que realizar la validación
dentro de la entidad...
He probado dentro de la carpeta Entity, en mi clase, con:
/**
* @var string $miCampo
* @Assert\NotBlank()
*/
private $miCampo;

.. y no me va....
Y dentro de los archivos YAML de mapeo de Tablas -> Clases, he probado
con:
fields:
.........etc...
miCampo:
type: string
length: 11
fixed: false
NotBlank: true
nullable: false


Aquí no tengo claro qué poner...
AYUDA!!!!!!!!!!!!!!!!!1


Zankyu!

Fabricio Salinas

unread,
Feb 29, 2012, 2:14:27 PM2/29/12
to symfo...@googlegroups.com
Hola,
Tienes validación del lado del cliente con,

->add('miCampo','text',array('label' => 'Expediente','required' =>true))
como bien dices y del lado del servidor con,
/**
* @var string $miCampo
* @Assert\NotBlank()
*/

private $miCampo;
como también indicas.

Lo que debes tener en cuenta es que la validación del lado del servidor la debes hacer en el controlador con el método isValid().

Por otro lado, es raro que con la validación del lado del cliente no pasada te envíe igual el formulario.

Saludos.




--
Has recibido este mensaje porque estás suscrito al grupo "symfony-es" de Google Groups.
Para publicar en este grupo, envía un email a symfo...@googlegroups.com
Para darte de baja, envía un email a symfony-es+...@googlegroups.com
El resto de opciones puedes encontrarlas en http://groups.google.com/group/symfony-es?hl=es



--
Fabricio Salinas
Project Leader

Gtalk: fabricio...@gmail.com
Skype: fabriciosalinas
Móvil (mx): 52 811 3997330
Móvil (ar): 54 3400 15 512831
Nextel: 52 811 7773087
Radio: 52*234216*13

Richard R. Perez Q.

unread,
Feb 29, 2012, 3:02:23 PM2/29/12
to symfo...@googlegroups.com
Si mal no me equivoco la validación del lado del cliente proviene de una función de HTML 5, por lo cual si usas un navegador que no es compatible con dicha versión (Como IE) no te funcionará.

Por otro lado como te comenta Fabricio del lado del servidor solo te funcionará si utilizas el método isValid()

algo así como:

$form->bindRequest($request);

if ($form->isValid()) {
           ...            
 }

Recuerda que cuentas con mas información en:


2012/2/29 Fabricio Salinas <fabricio...@gmail.com>



--
Atte.
Richard R. Perez Q.

juancharlies

unread,
Mar 2, 2012, 4:58:44 AM3/2/12
to symfony-es


OK... resuelto...
Ya no me respetaba la obligatoriedad del campo en el formulario, he
puesto la regla de validación en Resources/config/validation.yml

MiPaqueteBundle\Entity\MiTabla:
properties:
miCampo:
- NotBlank: ~


Sigo sin saber por qué con annotations no me va.... de todos modos
prefiero así..... me gustan los ficheros YAML, y así tengo todas las
restricciones del paquete juntas en un mismo archivo.

Gracias.
Reply all
Reply to author
Forward
0 new messages