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
06:56 min - 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
Viendo ahora - 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
Listado de posts con paginación en Laravel
Resumen
Crear un listado de publicaciones en Laravel implica conectar tres piezas: una ruta, un controlador que consulta la base de datos y una vista que renderiza los resultados con paginación. Aquí desarrollamos paso a paso ese flujo usando Eloquent y Tailwind CSS, ideal si estás construyendo tu primer CRUD en Laravel.
¿Cómo se consulta la base de datos desde el controlador?
La lógica empieza importando el modelo Post dentro del controlador. Sin esa importación, no hay forma de acceder a la tabla. Una vez disponible, se ejecuta una consulta directa que ordena los registros de forma descendente y aplica paginación nativa de Laravel.
El método paginate() resuelve dos cosas a la vez: limita el número de registros por página y entrega un objeto que luego puedes usar en la vista para generar los enlaces de navegación. Es una de esas piezas que ahorra mucho trabajo manual.
¿Qué hace el método paginate en Laravel? Divide automáticamente los resultados de una consulta en páginas y genera un objeto con enlaces listos para renderizar. Tú decides cuántos registros mostrar por página.
¿Por qué usar orden descendente en el listado?
Mostrar los registros más recientes primero es el patrón estándar en interfaces de administración. El usuario espera ver lo último publicado al abrir el panel, no lo más antiguo.
¿Cómo se construye la tabla con Tailwind CSS?
La vista parte de una etiqueta <table> con una clase de margen inferior nivel cuatro. Justo después se inserta el bloque de paginación usando {{ $posts->links() }}, que aprovecha el objeto generado por el controlador.
Dentro del cuerpo de la tabla se usa un @foreach que recorre la colección de posts. Cada iteración trabaja con dos variables: la colección completa y el registro individual. Es el patrón clásico de iteración en Blade.
Las filas reciben tres clases clave de Tailwind:
- Borde inferior gris nivel 200, para separar visualmente cada registro.
- Texto en tamaño small, para mantener la densidad informativa.
- Relleno horizontal nivel seis y vertical nivel cuatro en cada celda.
¿Qué celdas debe tener cada fila?
La primera celda muestra el título del post. Las dos siguientes son enlaces que en el futuro funcionarán como acciones: editar y eliminar. Para diferenciarlas visualmente, el enlace de editar lleva la clase text-indigo-600, que le da ese color característico de acción primaria.
De momento son enlaces vacíos, pero la estructura ya está lista para conectarlos a sus rutas correspondientes en los próximos pasos.
¿Por qué este patrón se repite en todos los frameworks web?
El ciclo ruta, lógica y respuesta es el fundamento de cualquier desarrollo web. Lo encuentras igual en Symfony, en Django con Python o en Express con Node. Cambia la sintaxis, pero la idea es siempre la misma.
¿Cuál es el flujo básico de una petición web? Una ruta recibe la petición, apunta a una lógica que procesa datos, y esa lógica entrega una respuesta al navegador. Ese ciclo se repite en cada framework.
Dominar este patrón en Laravel te da una base transferible. Cuando saltes a otro stack, solo tendrás que aprender la sintaxis nueva, no la lógica detrás.
¿Qué piezas quedan listas tras este paso?
Con el listado funcionando, ya tienes en pie:
- La ruta que apunta al método index del controlador.
- La consulta paginada con orden descendente.
- La vista con tabla, paginación y enlaces preparados para editar y eliminar.
Lo siguiente es darle vida a esos enlaces y agregar el botón de creación. Cuéntame en los comentarios cómo te fue replicando este listado y si decidiste ajustar el número de registros por página.