Contenido del curso
Fundamentos de Laravel
- 3

Qué es Artisan y cómo automatiza Laravel
04:23 min - 4

Rutas básicas en Laravel con web.php
06:44 min - 5

Cómo retornar vistas Blade en Laravel
07:02 min - 6

Plantillas Blade para vistas sin código repetido
06:03 min - 7

Controladores en Laravel con Artisan
07:17 min - 8

Migraciones en Laravel como control de versiones
07:01 min - 9

Modelos y factories en Laravel con datos falsos
Viendo ahora - 10

Consultas a base de datos con Eloquent
08:26 min - 11

Relaciones entre tablas con belongsTo en Laravel
05:37 min
Manos a la obra con nuestro proyecto
- 12

Revisión de arquitectura MVC en Laravel
02:15 min - 13

Instala el login de Laravel con Breeze
05:41 min - 14

Rutas de login y logout en Laravel Breeze
04:22 min - 15

Rutas y vistas con Route::resource en Laravel
03:59 min - 16

Listado de posts con paginación en Laravel
04:36 min - 17

Formulario para eliminar registros en Laravel
04:53 min - 18

Vistas de creación y edición con formulario compartido
06:49 min - 19

Formulario CRUD reutilizable en Laravel
05:02 min - 20

Guardar registros con relaciones en Laravel
06:06 min - 21

Método update en Laravel sin reescribir código
01:44 min - 22

Validación de formularios en Laravel con old()
04:43 min - 23

Validación unique en Laravel sin duplicados
05:32 min
Trabajemos en el diseño web de nuestro proyecto
- 24

Diseño del header con Tailwind y Laravel
06:38 min - 25

Divisor con gradiente en Tailwind CSS
03:50 min - 26

Construye la vista home de tu blog en Laravel
06:36 min - 27

Sección destacada con posicionamiento absoluto en Tailwind
04:15 min - 28

Diseño de página de publicación con Tailwind
02:33 min - 29

Formulario de búsqueda con Laravel y LIKE
04:18 min - 30

Cómo detectar el problema N+1 en Laravel
06:12 min
Cierre
Modelos y factories en Laravel con datos falsos
Resumen
Crear modelos en Laravel es el paso que conecta tu base de datos con la lógica de tu aplicación. Si ya hiciste la migración de una tabla, ahora necesitas el modelo para manejarla, y de paso aprovechar los factories y seeders para llenarla con datos de prueba. Esto te sirve si estás aprendiendo Laravel y quieres tener una base sólida para construir tu primer CRUD.
¿Qué diferencia hay entre una migración y un modelo en Laravel?
Una migración crea la estructura inicial de la tabla en la base de datos. El modelo, en cambio, es el archivo PHP que representa esa tabla dentro de Laravel y te permite hacer consultas, insertar registros y administrar la información desde el código.
Los modelos viven en la carpeta app/Models, donde Laravel ya incluye uno de ejemplo. Para administrar la tabla que creaste antes, necesitas generar uno nuevo con su propia configuración.
¿Qué es un modelo en Laravel? Es un archivo que representa una tabla de la base de datos y permite consultarla, modificarla y relacionarla con otras tablas usando código PHP en lugar de SQL directo.
¿Cómo generar un modelo con factory y controlador desde Artisan?
Laravel ofrece comandos en consola para acelerar la creación de archivos. Si ejecutas php artisan make:model --help puedes ver todas las opciones disponibles, incluyendo la bandera --all que crea migración, seeder, factory, controlador y políticas al mismo tiempo [02:00].
Para este caso, basta con generar el modelo junto con su factory y su controlador usando la bandera -fc:
fcrea el factory asociado al modelo.ccrea el controlador para manejar las peticiones.- El modelo queda listo en
app/Modelssin configuración adicional.
El controlador lo dejas en pausa por ahora. El foco está en el modelo y el factory, que es donde defines los datos falsos que poblarán la tabla.
¿Cómo definir datos falsos dentro del factory?
El factory es el archivo que describe cómo se ven los datos de prueba. Dentro del método de definición usas la librería Faker que Laravel incluye por defecto.
Para una tabla de publicaciones puedes configurar tres campos así:
- Título: una oración falsa con
sentence(). - URL amigable: derivada del título.
- Body: un texto largo de 2200 caracteres con
text(2200).
El detalle interesante está en la URL amigable. En lugar de dejar otra oración random, la conviertes a formato slug importando la clase \Illuminate\Support\Str y aplicando Str::slug($title) [04:30]. Así la URL queda coherente con el título de cada publicación.
¿Cómo poblar la base de datos con seeders y factories?
El seeder es el archivo que ejecuta la siembra de datos. Por defecto trae una línea comentada que crea un usuario; al descomentarla y duplicar la lógica para el modelo Post, puedes generar 80 registros de publicaciones de un solo golpe.
La estructura queda así:
- Crear un único usuario con el factory de
User. - Crear 80 publicaciones con el factory de
Post. - Ejecutar todo desde la consola con un comando.
El comando que une migraciones y seeders en un solo paso es:
php artisan migrate:refresh --seed
Este comando elimina las tablas, vuelve a correr todas las migraciones desde cero y luego ejecuta los seeders. Al revisar la base de datos verás 80 registros en la tabla de contenido y uno solo en la tabla de usuarios [05:50].
¿Para qué sirve migrate:refresh seed? Reinicia toda la base de datos: borra las tablas, vuelve a crearlas con las migraciones y las llena con los datos definidos en los seeders. Es ideal en desarrollo cuando quieres empezar limpio.
¿Por qué necesitas el modelo aunque no lo configures?
Aunque en el archivo del modelo no escribas ninguna línea adicional, su sola existencia es lo que permite que el factory y el seeder funcionen. El factory apunta al modelo, el seeder invoca al factory, y el modelo le dice a Laravel a qué tabla pertenecen esos datos.
El ciclo completo se entiende mejor en orden:
- La migración crea la tabla una sola vez.
- El modelo representa esa tabla en el código.
- El factory define cómo lucen los datos falsos.
- El seeder usa el factory para insertar registros masivos.
Con esa cadena funcionando, ya tienes 80 publicaciones listas y un usuario para asociarlas. Tu reto ahora es replicar exactamente eso en tu proyecto: 80 publicaciones y un único usuario, porque sin esa data no podrás avanzar con los siguientes ejercicios del CRUD.
¿Te animas a contar en los comentarios qué otros campos agregarías al factory de publicaciones?