es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Inicializar tabla en Eloquent ORM con valores predeterminados.

Estoy creando una API en el framework Lumen, utilizando Eloquent ORM para acceder a mis bases de datos. Ya he utilizado Factories y Models para generar filas aleatorias en mi tabla.

Lo que quiero saber es cómo generar datos reales, valores por defecto si mi tabla está vacía. Tendré una tabla llamada units para almacenar posibles valores de unidad (Kilogramos, piezas, litros, etc). He creado una clase de migración para crear la tabla, pero me gustaría crear esta tabla con algunas filas por defecto, para que no esté vacía. Estas filas no serán aleatorias, sino los valores reales a los que el usuario tendrá acceso, incluso en producción. Después podrán modificarse, pero me gustaría que el sistema se inicialice con estos valores.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para generar datos predeterminados para la tabla units, puedes crear una clase seed que se ejecutará después de la clase de migración. En esta clase seed, puedes definir los datos predeterminados que deseas insertar en la tabla.

    Primero, crea una clase seed usando el siguiente comando en tu terminal:

    php artisan make:seeder UnitsTableSeeder
    

    Esto creará un nuevo archivo llamado UnitsTableSeeder.php en tu directorio database/seeds.

    A continuación, abre el archivo UnitsTableSeeder.php y define el método run. Dentro de este método, puedes usar Eloquent para crear nuevas filas en la tabla units. Por ejemplo:

    use App\Unit;
    
    class UnitsTableSeeder extends Seeder
    {
        public function run()
        {
            Unit::create([
                'name' => 'Kilograms',
                'symbol' => 'kg',
            ]);
    
            Unit::create([
                'name' => 'Piece',
                'symbol' => 'pc',
            ]);
    
            Unit::create([
                'name' => 'Liters',
                'symbol' => 'L',
            ]);
        }
    }
    

    Este código creará tres nuevas unidades en la tabla units con los nombres ‘Kilograms’, ‘Piece’ y ‘Liters’, junto con sus símbolos correspondientes.

    Para ejecutar el seeder, utiliza el siguiente comando en tu terminal:

    php artisan db:seed --class=UnitsTableSeeder
    

    Esto insertará los datos predeterminados en la tabla units.

    Ahora, cada vez que realices una migración de tu base de datos, el UnitsTableSeeder también se ejecutará y llenará la tabla units con los datos predeterminados.

Comments are closed.