Laravel

Agregar columna tipo decimal en Laravel

Agregar columna tipo decimal en Laravel. En todo proyecto Laravel siempre nos chocaremos con este tema y son las monedas, precios y es importante declarar este campo en decimal para que la información sea  precisa.

¿Como agregar columna tipo decimal en Laravel?

Tenemos en agregarlo en nuestras migración cuando creamos los campos de la tabla. Y solo debemos de declararlo de la siguiente manera.

$table->decimal('price', 13,2)->default(0)->nullable();

Crear una migración y comprender la estructura

Para generar una migración, debe ejecutar un comando. En este caso vamos a crear una tabla llamado productos de ejemplo.

php artisan make:migration create_products_table

Al ejecutar el anterior comando generara lo siguiente:

  • Creara un archivo en la carpeta database\migrations.
  • El archivo consta de una nueva clase que extiende la clase de migración de LARAVEL.
  • La nueva clase consta de dos funciones principales: up() y down().
  • La ​​función up() contiene toda la información sobre la migración del archivo.
public function up()
{
    Schema::create('products', function (Blueprint $table)
    {
            $table->id();
            $table->string('name');
            $table->string('description');

            $table->decimal('price', 10,2); // Sustituye por otro decimal de tu preferencia
           
            $table->boolean('status');
            $table->timestamps();
    });
}

Crear columna decimal en Laravel

Si observamos el código anterior hemos declarado la columna precio en decimal usando la siguiente linea de código.

$table->decimal('price', 10,2); // Sustituye por otro decimal de tu preferencia

Luego, una vez terminado de declarar la columna decimal y creado los demás campos de la tabla podemos ejecutar la siguiente linea de comando para que Laravel cree la tabla en la base de datos.

php artisan migrate

¿Cómo agregar una columna decimal a una tabla existente en la migración?

Si ya tenemos la table creada y deseamos crear una nueva columna podemos agregarlo haciendo los siguientes pasos.

Paso 01: identificar la funcion up()

Cuando creamos una migración en laravel, agregamos campos a esa migración en la función

    /**
     * Run the migrations.
     */
    public function up(): void
    {
        Schema::create('products', function (Blueprint $table) {
            $table->id();
            $table->string('name')->nullable();
            $table->timestamps();
        });
    }

Paso 02: Identificar la Función down()

Aquí, podemos hacer modificaciones a la tabla y a continuación veremos un ejemplo.

    /**
     * Reverse the migrations.
     */
    public function down(): void
    {
        Schema::dropIfExists('products');
        Schema::table('reviews', function (Blueprint $table) {
          $table->decimal('price', 5,2)->change();
        });
    }

Una vez editado podremos ejecutar el siguiente comando

php artisan migrate:rollback

Caso contrario usar el comando

php artisan migrate:fresh --seed

Nota: No es recomendable usar en modo de producción, siempre ejecuten en modo local.

Nestor Tapia

Bloggero, amante de la programación PHP, innovador y me fascina compartir información. Desde que conocí el entorno informatico y el internet me llamó la atención la programación, Por tal motivo he creado mi blog BAULPHP.COM para compartir mis experiencias con todos ustedes. ¡Gracias por leerme!.
Botón volver arriba
Esta web utiliza cookies propias para su correcto funcionamiento. Contiene enlaces a sitios web de terceros con políticas de privacidad ajenas que podrás aceptar o no cuando accedas a ellos. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad