¡Hola, bienvenid@s al curso de Laravel y ChatGPT! Dando continuidad al curso, hoy veremos como generar datos de prueba en Laravel con ChatGPT. Esto nos permitirá llenar con datos de pruebas nuestras tablas de “Zonas” y “Viviendas”. Utilizaremos dos de los componentes que nos ofrece Laravel como son los Seeder y Factories.
¡Empecemos!
¿Qué son los Seeder en Laravel?
Los Seeder es un componente de Laravel que permite llenar automáticamente la base de datos con datos de prueba o datos iniciales. Se utilizan durante el desarrollo de la aplicación para llenar la base de datos con registros falsos o datos predefinidos que te permitan realizar pruebas de funcionalidad y diseño sin tener que ingresar manualmente cada registro.
¿Qué son los Factories en Laravel?
Los Factories en Laravel a diferencia de los Seeder nos permite definir y generar cientos y miles de datos falsos de manera estructurada para poblar tu base de datos durante las pruebas y el desarrollo de aplicaciones.
Generar los datos de prueba
Para generar los datos de prueba de nuestro proyecto utilizaremos nuevamente la inteligencia artificial de ChatGPT. Esto nos permitirá generar el código necesario para poblar de datos nuestra base de datos.
Generar el Factory Zona
Empezaremos por crear el factory “Zona” para esto realizamos la siguiente pregunta a ChatGPT.
“Crear el Factory zonas a partir de los modelos creados”
ChatGPT genera el comando para crear el Factory “Zona” y todo el código quien se encargará de llenar de datos la tabla “Zonas”. Si observamos en el campo “Nombre” llena datos de ciudades de diferentes países.

Para nuestro propósito estos datos no nos sirven, nuevamente escribimos a ChatGPT especificando que en campo “Nombre” de la tabla “Zonas” seleccione de un array que nosotros le pasemos (ejemplo: Zona San Roque, Zona Satelite, Zona Villa Venezuela, etc.).
“En el factory llena con los datos de las zonas de la ciudad de Potosí por ejemplo: Zona San Roque, Zona Villa Venezuela, Zona Satelite”
Ahora ChatGPT nos arroja un resultado más acorde a nuestras necesidades con los datos que nosotros le pesamos en la pregunta.

En las últimas versiones de Laravel los Factories se pueden definir por la función “Fake()” en lugar de llamarlo con la variable “$this” (Recuerda que ChatGPT está actualizado hasta septiembre del 2021 por lo que estos cambios aún no los conoce). Realizamos este cambio en el código generado por ChatGPT.
Generar el Factory Vivienda
De igual manera para crear el Factory “Vivienda” realizamos la siguiente pregunta a ChatGPT.
“Crear el Factory vivienda a partir de los modelos creados”
ChatGPT genera el comando para crear el Factory “Vivienda” y todo el código quien se encargará de llenar de datos la tabla “Viviendas”. Si observamos en el campo “zona_id” requiere algunos ajustes de acuerdo a la versión actual de Laravel. El código quedaría de esta forma.

Ejecutar las Factories
Una vez creado los Factories necesarios para llenar las tablas “Zonas” y “Viviendas”, debemos ejecutar los Seeders para esto realizamos la siguiente pregunta a ChatGPT.
“Ahora debemos ejecutar los Factories creados”
ChatGPT nos dará los pasos necesarios para ejecutar los Factories. En uno de los pasos nos indica los siguiente:
“Abre el archivo de seeder predeterminado DatabaseSeeder.php que se encuentra en la carpeta database/seeders de tu proyecto. Asegúrate de que los Factories que deseas ejecutar estén registrados en el método run de este archivo”
Registramos en el archivo “DatabaseSeeder.php” los Factories “Zonas” y “Vivienda”, y por ultimo ejecutamos los Factories desde la línea de comandos con el siguiente código: php artisan db:seed
Verificamos si los datos fueron llenados en nuestro administrador de base de datos de MySQL.

Para tener todo el código generado de esta clase y todas las demás, puedes clonar el proyecto “potosi_registros” que está disponible en GitHub totalmente gratis para un mejor aprendizaje de este curso.
Es recomendable consultar la documentación oficial de Laravel en su última versión (recuerda que ChatGPT está actualizado hasta Septiembre del 2021). Nos vemos en la siguiente clase donde veremos como generar los controladores y utilizar Eloquent ORM en laravel con ChatGPT.
Saludos y éxitos.

Victor Peña
Desarrollador de software Backend Developer, experto en Laravel Framework, PHP, JavaScript y MySQL. Creador de contenidos de emprendimiento y desarrollo de software.