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

Zend Validate Float

Estas en el tema de Zend Validate Float en el foro de Zend en Foros del Web. Hola amigos, Estoy utilizando Zend como un componente en uno de mis proyecto... Resulta que he hecho una cosa tal que asi para validar si ...
  #1 (permalink)  
Antiguo 14/05/2012, 04:37
 
Fecha de Ingreso: diciembre-2010
Mensajes: 79
Antigüedad: 14 años
Puntos: 3
Zend Validate Float

Hola amigos,

Estoy utilizando Zend como un componente en uno de mis proyecto... Resulta que he hecho una cosa tal que asi para validar si un dato es de tipo float

Código PHP:
Ver original
  1. $float = new Element\Text('float');
  2.             $float->setLabel('float')
  3.             ->addValidator('Float');
  4.             echo $float->isValid(234.5);

Esto me devuelve 1, pero si hago

Código PHP:
Ver original
  1. echo $float->isValid("234.5");

Me devuelve 0 que es lo que estoy haciendo mal... Solo quiero validar los datos de tipo float...
pero en Zend tampoco tengo un filter para que la cadena me la convierta en float...

alguna propuesta o posible camino
  #2 (permalink)  
Antiguo 14/05/2012, 05:58
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 11 meses
Puntos: 845
Respuesta: Zend Validate Float

Y, la propuesta es leer la documentación del validator http://framework.zend.com/manual/en/...date.set.float, comprueba el locale, si es es_ES, esto "234.5" no es un float valido debería ser "234,5"

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #3 (permalink)  
Antiguo 14/05/2012, 06:08
 
Fecha de Ingreso: diciembre-2010
Mensajes: 79
Antigüedad: 14 años
Puntos: 3
Respuesta: Zend Validate Float

Estoy utilizando Zend Framework 2, todavia no hay una documentacion oficial.... pero bueno gracias por la propuesta le he echado un vistazo a la documentacion del Framework

La duda es como puedo validar una float si me lo dan como una cadena, existe eso en Zend 2.
  #4 (permalink)  
Antiguo 14/05/2012, 06:25
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 11 meses
Puntos: 845
Respuesta: Zend Validate Float

Es lo mismo, el componente Validator no ha sufrido cambios importantes entre Zend 1 y 2, el problema no es que sea un string es que el string que estas pasando no es valido para el locale que tiene el validator(seguramente sea es_ES), cambia el locale y veras como valida.

Código PHP:
Ver original
  1. $validator = new \Zend\Validator\Float();      
  2. \Zend\Debug::dump($validator->isValid(234.5));
  3. \Zend\Debug::dump($validator->isValid('234.5'));
  4. \Zend\Debug::dump($validator->isValid('234,5'));
  5.  
  6. $validator->setLocale('en');
  7. \Zend\Debug::dump($validator->isValid(234.5));
  8. \Zend\Debug::dump($validator->isValid('234.5'));
  9. \Zend\Debug::dump($validator->isValid('234,5'));

http://framework.zend.com/manual/en/...loat.localized

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #5 (permalink)  
Antiguo 14/05/2012, 07:51
 
Fecha de Ingreso: diciembre-2010
Mensajes: 79
Antigüedad: 14 años
Puntos: 3
Respuesta: Zend Validate Float

Acabo de hacer lo que me has dicho que ya lo habia probado... y tampoco a funcionado es decir que pongo el setLocale a 'en' y tampoco me lo hace...

Las cadenas me dan todas falsas.
  #6 (permalink)  
Antiguo 14/05/2012, 08:09
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 11 meses
Puntos: 845
Respuesta: Zend Validate Float

A ver, si haces un copy & pate del código que te pase no funciona como esperas ?, si tu ingresas un string separado por ','(coma, ej "123,4") te da false ?, donde estas seteando el locale ?, se lo estas pasando como opción al agregarlo al element ?
__________________
http://es.phptherightway.com/
thats us riders :)
  #7 (permalink)  
Antiguo 14/05/2012, 08:24
 
Fecha de Ingreso: diciembre-2010
Mensajes: 79
Antigüedad: 14 años
Puntos: 3
Respuesta: Zend Validate Float

He cogido y he hecho esto mismo

Código PHP:
Ver original
  1. use Zend\Validator\Float;
  2.  
  3. $validator=new Float();
  4.            
  5.             $validator->setLocale('en');
  6.             echo "primero";
  7.             \Zend\Debug::dump($validator->isValid(234.5));
  8.             echo "segundo";
  9.             \Zend\Debug::dump($validator->isValid('234.5'));
  10.             echo "tercero";
  11.             \Zend\Debug::dump($validator->isValid('234,5'));

y el primero me da true y el segundo y tercero false
  #8 (permalink)  
Antiguo 14/05/2012, 11:04
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 11 meses
Puntos: 845
Respuesta: Zend Validate Float

Que versión estas utilizando ?, estas tirando de master ?, tienes dentro de /resources la carpeta cldr ?, porque todo el locale depende de los xml que están dentro de esa carpeta
__________________
http://es.phptherightway.com/
thats us riders :)
  #9 (permalink)  
Antiguo 15/05/2012, 05:29
 
Fecha de Ingreso: diciembre-2010
Mensajes: 79
Antigüedad: 14 años
Puntos: 3
Respuesta: Zend Validate Float

Te comento un poco el asunto... Estoy utilizando la libreria de Zend pero no tengo instalado el Zend Framwork... con lo cual no tengo la carpeta resources cldr.

Siguiendo este blog http://phpsenior.blogspot.co.uk/2009...framework.html

Lo que hice fue copiar la carpeta zf2/library a mi proyecto... con lo cual me da a mi que no puedo usar lo que me estas diciendo... Pero como puedo utilizar los componentes de Zend sin tener que instalarlo??
  #10 (permalink)  
Antiguo 15/05/2012, 07:38
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 11 meses
Puntos: 845
Respuesta: Zend Validate Float

Lo que no entiendo es porque estas utilizando Zend 2, estas teniendo en cuenta que es beta ?, el tutorial que estas siguiendo no lo he mirado pero si es del 2009 no es con Zend 2.
Fuera de esto, si descargas los resources y seteas el path a Zend/Locale/Data/Cldr deberia funcionar correctamente, descarga la carpeta resources de https://github.com/zendframework/zf2...ster/resources y luego setea el path con

Código PHP:
Ver original
  1. \Zend\Locale\Data\Cldr::setPath('/path/to/dclr');

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)

Etiquetas: float, validar
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 07:02.