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

Validar campo Unique con zend Form

Estas en el tema de Validar campo Unique con zend Form en el foro de Zend en Foros del Web. Hola amigos aca de nuevo: Tengo una tabla en mysql: CREATE TABLE IF NOT EXISTS `orden` ( `id` int(11) NOT NULL AUTO_INCREMENT, `numero` varchar(11) NOT ...
  #1 (permalink)  
Antiguo 12/04/2010, 09:35
 
Fecha de Ingreso: abril-2010
Ubicación: Lima-Peru
Mensajes: 94
Antigüedad: 14 años
Puntos: 2
Validar campo Unique con zend Form

Hola amigos aca de nuevo:

Tengo una tabla en mysql:

CREATE TABLE IF NOT EXISTS `orden` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`numero` varchar(11) NOT NULL UNIQUE,
`id_customer` varchar(255) NOT NULL,
`id_terminal` varchar(255) DEFAULT NULL,
`id_regimen` varchar(110) DEFAULT NULL,

PRIMARY KEY (`id`)
) ENGINE=InnoDB ;

A esta tabla se accede mediante un formulario hecho en zend Form y cuando creo una orden por ahora se estan duplicando las ordenes.

Existe una manera de controla esto con zend o tengo que hacer una query para hacer una busqueda y comprobar si existe este numero de orden, cosa que si existe me salga un mensaje de error.

Espero su ayuda.
  #2 (permalink)  
Antiguo 12/04/2010, 10:57
 
Fecha de Ingreso: enero-2010
Ubicación: Monterrey
Mensajes: 17
Antigüedad: 14 años, 3 meses
Puntos: 0
Tal vez alguien te pudiera dar una mejor solución pero se me ocurre que al crear tu forma, mientras extiendes Zend_Form reescribas el método isValid() agregándole tu validación manual.

Saludos

O tal vez crear tu propio validador completito extendiendo Zend_Validate_Abstract. y luego al Form Element le agregas el validador creado con addValidator().

Saludos

Edit: más bien es implementar la Interfaz Zend_Validate_Interface y luego ya agregas el validador

Última edición por netmx; 12/04/2010 a las 12:12 Razón: error al explicar
  #3 (permalink)  
Antiguo 12/04/2010, 16:07
 
Fecha de Ingreso: abril-2010
Ubicación: Lima-Peru
Mensajes: 94
Antigüedad: 14 años
Puntos: 2
Respuesta: Validar campo Unique con zend Form

Hola gracias por responder, pero me surge una consulta adicional, este validador que voy a crear, el archivo lo tengo q ubicar dentro de la carpeta Zend/Validate asi como estan los demas validadores que provee Zend o donde me lo recomiendan.

Si es en la carpeta Zenda/Validate hay algo mas que hacer a parte de la construccion de este validador??

Espero me resuelvan estas dudas. Gracias.

Saludos,
  #4 (permalink)  
Antiguo 12/04/2010, 17:30
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 18 años, 7 meses
Puntos: 55
Respuesta: Validar campo Unique con zend Form

ya esta hecho esto en ZF el validador se llama Zend_Validate_Db_NoRecordExists()
__________________
Degiovanni Emilio
developtus.com
  #5 (permalink)  
Antiguo 13/04/2010, 08:39
 
Fecha de Ingreso: abril-2010
Ubicación: Lima-Peru
Mensajes: 94
Antigüedad: 14 años
Puntos: 2
Respuesta: Validar campo Unique con zend Form

Gracias emiliodeg efectivamente con ese validador pude solucionar el problema, pongo un pequeño ejemplo para alguien que se encuentre con el mismo problema.

Código PHP:
 $numero->setRequired(true)
        ->
setLabel('Numero de Orden');
 
$numero->addValidator('Db_NoRecordExists'false, array('table' => 'orden',
                                                            
'field' => 'numero')); 
Donde Orden es el nombre de la tabla y numero es el campo unique de dicha tabla.

Saludos,

Etiquetas: formulario, campos
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 09:45.