Construir la vista que muestra datos paginados en Laravel es uno de los pasos más importantes para conectar el backend con lo que el usuario ve en pantalla. Aquí se recorre todo el flujo: desde la ruta y el controlador hasta el template Blade que imprime los registros y los botones de paginación.
¿Cómo se conecta la ruta con el controlador y la vista?
El punto de partida es la configuración de rutas en el archivo de acceso web [0:42]. La ruta raíz apunta al método index del controlador PostController. Ese método consulta los datos y retorna una vista llamada index, pasándole la colección de posts como variable.
El controlador ya tiene preparada la lógica necesaria:
- Consulta los registros utilizando el método de paginación de Eloquent.
- Retorna la vista
index junto con la información obtenida.
Gracias a que se usa paginate() en lugar de get(), los resultados llegan con la capacidad de generar enlaces de navegación entre páginas de forma automática [2:25].
¿Qué estructura HTML necesita la vista Blade?
El archivo que Laravel trae por defecto se llama welcome.blade.php. En este caso se renombra a index para que coincida con lo que el controlador espera devolver [1:15]. Del contenido original solo se conserva la estructura base de HTML: las etiquetas <body> y el esqueleto del documento.
Dentro del body se construye la iteración con la directiva @foreach de Blade [1:40]:
php
@foreach($posts as $post)
<div>
<h2>{{ $post->title }}</h2>
</div>
@endforeach
{{ $posts->links() }}
@foreach recorre la colección $posts y asigna cada elemento a la variable $post en singular.
- Dentro del bucle se crea un
<div> con un <h2> que muestra el título de cada registro.
- Fuera del bucle se llama a
$posts->links(), que genera automáticamente los botones de paginación [2:05].
¿Por qué funciona el método links?
El método links() está disponible porque el controlador utiliza paginate() en la consulta Eloquent. Si se usara get(), la colección no tendría esa funcionalidad integrada. La paginación divide los 120 registros de la base de datos en grupos de 15, mostrando información como "del 46 al 60 de 120 resultados" al visitar la página tres [2:45].
¿Cómo se verifica en el navegador?
Al acceder a la URL del proyecto y presionar enter, la página index responde con la lista de títulos y los controles de paginación en la parte inferior [2:30]. Los íconos y botones aparecen sin estilos porque aún no se ha aplicado CSS; eso se resuelve con Tailwind en la siguiente lección.
¿Qué papel juegan el factory y el seeder en este flujo?
Antes de la vista, toda la información parte de tres piezas previas:
- La migración, que define la estructura de la tabla en la base de datos.
- El factory, que establece el esquema de datos falsos con la librería Faker.
- El seeder, que ejecuta el factory para insertar registros de prueba [0:25].
Estos 120 registros son los que el controlador consulta y la vista renderiza. Sin datos reales o de prueba, la paginación y el @foreach no tendrían contenido que mostrar.
El resultado es una página funcional que lista publicaciones y permite moverse entre páginas. El diseño visual queda pendiente, pero la estructura HTML y la lógica de paginación ya están operativas. Si quieres compartir cómo organizas tus vistas Blade en proyectos Laravel, deja tu comentario.