Este foro ya no está activo, así que no puedes publicar nuevas preguntas ni responder a las preguntas existentes.

Formato numérico en formularios

19 de mayo de 2016

Trabajo con symfony 2.4. Tengo un formulario con un campo number, el idioma es español, pero al usar la propiedad grouping para que me lo formatee con el separador de los millares y la coma decimal me pone 1,000.0 en lugar de 1.000,0. ¿Alguien sabe qué falla? Gracias

El campo del formularo es el siguiente:

->add('precioCompra', 'number', array('required' => false, 'precision' => '2', 'grouping' => true))

El fichero parameter.yml

locale: es

El fichero config.yml

framework:
    translator:      { fallback: "%locale%" }
    default_locale:  "%locale%"

Respuestas

#1

Hola @abmelgarejo,

En muchos casos el problema no es de tu código sino de la configuración regional de la máquina, no si este sea tu caso pero para descartar, te sugiero que cambies por un momento la configuración regional.

Fue lo primero que se me ocurrió.

Saludos,

@miguelplazasr

20 mayo 2016, 4:24
#2

Gracias @miguelplazasr por tu respuesta. He probado a cambiar el parámetro locale a es, en, fr y de y el valor que me devuelve app.request.locale es el correcto. Pero a la hora de mostrar cualquier valor numérico, pone como separador decimal el punto (.) Hago ésto en el controlador:

$decimal = (1/10);
 $log->addInfo('valor de $decimal '.$decimal);

y muestra 0.1, con independencia de lo que en la variable locale haya puesto.

He probado a borrar la cache por línea de comandos

$ php app/console cache:clear --env=dev
$ php app/console cache:clear --env=prod

y manualmente, eliminando todas las carpetas del directorio app/cache y reiniciando posteriomente en Xampp y sigue mostrándome el . como separador decimal. :-(

@abmelgarejo

20 mayo 2016, 10:08
#3

Hola @abmelgarejo,

Ya descartamos la configuración, reviste este par de enlaces, uno es sobre la función number_format de PHP y el otro es el filtro de Twig para number_format a ver si con eso puedes resolverlo.

Saludos,

@miguelplazasr

21 mayo 2016, 4:41
#4

@miguelplazasr, en la plantilla twig uso number_format para mostrar los datos en un listado y funciona correctamente

<td> {{ producto.precioCompra |number_format(2, ',', '.') }}</td>

Pero en el formulario de edición del producto, no consigo ponerlo en el formato español. Incluso si intento guardar la coma (,) como separador decimal, me da error.

Un saludo

@abmelgarejo

30 mayo 2016, 10:32