Generar reportes en PDF con Laravel Framework (Php y Mysql) DomPDF

Laravel

En el desarrollo de proyectos de todo tipo; se hace importante la extracción de la información guardada en las bases de datos. Presentar información en forma física de un Software, será una de las necesidades fundamentales para todo desarrollador, por tal motivo el presente artículo va orientado a como generar reportes en PDF con Laravel Framework, si estás utilizando este marco de desarrollo para PHP, con una base de datos MySQL este  artículo es para ti.

 Generar reportes en PDF con Laravel Framework (Php y Mysql)

Para llevar a cabo este ejemplo debes crear un proyecto en Laravel Framework, si es tu primera vez puedes hacerlo mediante el siguiente artículo.

Primer proyecto en Laravel Framework

Configurando la conexión con la base de datos

Para establecer la conexión con la base de datos, abrimos el directorio Config y seleccionamos el archivo database.php; a continuación definimos los parámetros de conexión (Configura de igual manera tu archivo .env), así:

Generar reportes en PDF con Laravel

Creando la base de datos en MySQL

Como pudimos observar en la imagen anterior la base de datos será “bdtest“, dentro de ella existe una tabla llamada productos con algunos registros.

Generar reportes en PDF con Laravel

Si deseas aprender a crear una base de datos en MySQL puedes acceder aquí y luego seguir con el tutorial.

Definiendo una ruta para el reporte

Ahora necesitamos una URL o Ruta en Laravel sobre la cual accederemos a nuestro reporte, abre la carpeta App, luego Http y selecciona el archivo routes.php.

Generar reportes en PDF con Laravel

La ruta nos permitirá visualizar en el navegador o descargar el reporte generado con Laravel.

Creando el contolador: ReportController

Con nuestra ruta configurada, al momento de acceder por el navegador a:

http://localhost/LaravelReport/public/pdf

Lo que hace es referenciar el controlador “ReportController” y la función “generar”, por ello debemos crear dicho controlador y la función indicada.

Dirígete al directorio: App/Http/Controllers/ y crea un nuevo archivo llamado ReportController.php.

Código de ReportController.php

Report Controller Laravel Framework

Mirando nuestro archivo ReportController.php estamos ahora referenciando una vista llamada: “reporte“; esta vista tendrá el código HTML con la estructura del reporte, sin embargo este no es todo el código de ReportController, aquí también debemos hacer la consulta a la base de datos, sigamos con el tutorial.

Creando la vista “reporte”

Para crear la vista reporte solo debemos dirigirnos al directorio “resources” que se encuentra en la raíz del proyecto y crear el archivo reporte.blade.php.

Código de reporte.blade.php

Archivos blade en Laravel Framework

Básicamente tenemos un archivo HTML, con una tabla para mostrar los datos, posteriormente cuando hagamos la consulta enviaremos los datos a la vista “reporte”; por ahora probemos la vista en el navegador si todo funciona bien obtendrás:

Generar reporte en Laravel

Ahora estamos seguros que nuestra ruta, controlador y vista están funcionando correctamente.

Instalando DomPdf en Laravel Framework

Para la instalación de DomPdf en laravel, sigue el siguiente enlace.

Cómo instalar DomPDF en Laravel Framework generar reportes en PDF

Consultando la base de datos para llenar la tabla del reporte

Ya con DomPdf instalado y configurado podemos generar el Pdf en Laravel, para ello haremos una consulta en la base de datos sobre la tabla productos, estos datos los enviaremos a la vista y generamos el Pdf, veamos:

Editando ReportController para consultar los datos

Antes de enviar los datos a la vista es importante probar nuestra consulta, veamos:

Consulta Laravel Framework

Ahora veamos los datos obtenidos en el navegador.

Consulta en Laravel

Al confirmar que estamos recibiendo los datos de la consulta de forma correcta, terminamos la función generar().

DomPDF Laravel imprimir pdf

El código anterior, además de hacer la consulta; envía a la vista el resultado de dicha consulta, además convierte nuestra vista en un pdf visible en el navegador.

Recibiendo los datos en la vista “reporte.blade.php”

Para incluir los datos enviados desde el controlador y llenar la tabla nos apoyamos en un ciclo foreach.

Llenar tabla en Laravel Framework

¡Finalmente el reporte terminado!

Ahora solo queda visualizar en el navegador en la ruta configurada nuestro reporte, así:

Reporte de productos en Laravel Framework

Por último cabe recordar que si nuestra finalidad no es visualizar si no descargar el reporte de inmediato, cambiamos la instrucción stream; por download en ReportController, de esta forma podrás generar reportes en PDF con Laravel que podrás imprimir, enviar por correo, etc.