Volver a la página principal
sábado 7 diciembre 2024
5

Configurar columna de base de datos en Laravel para cantidad de euros

Para manejar cantidades en euros, es esencial elegir un tipo de dato que garantice precisión. En bases de datos relacionales, el tipo DECIMAL es la mejor opción para representar valores monetarios.

Migración de Laravel

Crea o modifica una migración para tu tabla utilizando el método decimal. Este método acepta dos parámetros:

1. La precisión total (cantidad máxima de dígitos).

2. La escala (número de dígitos después del punto decimal).

public function up()
{
    Schema::create('productos', function (Blueprint $table) {
        $table->id();
        $table->string('nombre');
        $table->decimal('precio', 8, 2); // Hasta 999,999.99 euros
        $table->timestamps();
    });
}

En este caso:

  • 8 indica que el número total puede tener hasta 8 dígitos.
  • 2 permite 2 dígitos después del punto decimal (por ejemplo, 99999.99).

Configuración adicional (opcional)

Asegúrate de configurar correctamente las operaciones matemáticas en tu aplicación para evitar errores de redondeo. Laravel tiene soporte para el paquete MoneyPHP, útil para manejar divisas.

Ejemplos prácticos

1. Guardar un precio en euros:

$producto = new Producto();
   $producto->nombre = 'Producto A';
   $producto->precio = 19.99; // Precio en euros
   $producto->save();

2. Mostrar el precio en vistas:

Usa la función number_format para asegurar un formato estándar:

{{ number_format($producto->precio, 2, ',', '.') }} €

3. Operaciones aritméticas en queries:

$total = Producto::sum('precio'); // Suma total de los precios

Referencia oficial

Consulta la documentación oficial de Laravel sobre migraciones para más detalles sobre cómo manejar tipos de datos. También puedes explorar el uso de paquetes externos como MoneyPHP para cálculos avanzados.

Etiquetas:
php laravel
Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer