PHPackages                             langleyfoxall/eloquent-report-generator - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Database &amp; ORM](/categories/database)
4. /
5. langleyfoxall/eloquent-report-generator

ActiveLibrary[Database &amp; ORM](/categories/database)

langleyfoxall/eloquent-report-generator
=======================================

Generates reports from Eloquent models in CSV, PDF, Markdown, HTML, etc.

v1.1.0(2y ago)43703[1 issues](https://github.com/langleyfoxall/eloquent-report-generator/issues)LGPL-3.0-onlyPHPPHP &gt;=7.0

Since Dec 3Pushed 2y agoCompare

[ Source](https://github.com/langleyfoxall/eloquent-report-generator)[ Packagist](https://packagist.org/packages/langleyfoxall/eloquent-report-generator)[ RSS](/packages/langleyfoxall-eloquent-report-generator/feed)WikiDiscussions master Synced 2w ago

READMEChangelog (4)Dependencies (3)Versions (6)Used By (0)

Eloquent Report Generator
=========================

[](#eloquent-report-generator)

This package can be used to generate reports from Eloquent models in many formats, such as CSV, PDF, Markdown, and HTML.

Installation
------------

[](#installation)

To install, just run the following composer command.

```
composer require langleyfoxall/eloquent-report-generator
```

Remember to include the `vendor/autoload.php` file if your framework does not do this for you.

Usage
-----

[](#usage)

First, add the `Reportable` trait to the model or models you wish to create reports from.

```
namespace App;

use Illuminate\Database\Eloquent\Model;
use LangleyFoxall\EloquentReportGenerator\Traits\Reportable;

class User extends Model
{
    use Reportable;

    // ...
```

You can then generate reports elsewhere in your application by calling the static `generateReport` method from this trait.

See the following code snippet for example usage.

```
// Report format
$format = (new CsvReportFormat());
//$format = (new PdfReportFormat());
//$format = (new MarkdownReportFormat());
//$format = (new HtmlReportFormat());

// Report generation
User::generateReport()
    ->format($format)
    ->query(function ($query) {
        // Restrict the records used in the report
        $query->where('created_at', '>=' '2018-01-01');
    })
    ->fields(['email', 'name', 'created_at'])
    ->fieldMap([
        // Change how fields appear in the report
        'email' => 'Email address',
        'name' => 'Name',
        'created_at' => 'Joined Date',
    ])
    ->dataRowManipulator(function (DataRow $dataRow) {
        // Format the 'name' field
        $name = $dataRow->getDataItemByFieldName('name');
        $name->value = ucwords($name);
    }
    ->save(storage_path('app/report.csv'));
```

###  Health Score

29

—

LowBetter than 57% of packages

Maintenance15

Infrequent updates — may be unmaintained

Popularity18

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity60

Established project with proven stability

 Bus Factor1

Top contributor holds 75% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~574 days

Total

4

Last Release

1042d ago

Major Versions

v0.2.0 → v1.0.02019-01-22

### Community

Maintainers

![](https://www.gravatar.com/avatar/c580cdf7c14898fff179cdfc1085892091d5d2f49d917873a12365af9ac77c93?d=identicon)[Jord-JD](/maintainers/Jord-JD)

---

Top Contributors

[![Jord-JD](https://avatars.githubusercontent.com/u/650645?v=4)](https://github.com/Jord-JD "Jord-JD (15 commits)")[![jameswilddev](https://avatars.githubusercontent.com/u/3138458?v=4)](https://github.com/jameswilddev "jameswilddev (4 commits)")[![lfnicklangley](https://avatars.githubusercontent.com/u/10709152?v=4)](https://github.com/lfnicklangley "lfnicklangley (1 commits)")

---

Tags

csveloquenteloquent-modelshtmlmarkdownpdfreporting

### Embed Badge

![Health badge](/badges/langleyfoxall-eloquent-report-generator/health.svg)

```
[![Health](https://phpackages.com/badges/langleyfoxall-eloquent-report-generator/health.svg)](https://phpackages.com/packages/langleyfoxall-eloquent-report-generator)
```

###  Alternatives

[kirschbaum-development/eloquent-power-joins

The Laravel magic applied to joins.

1.6k29.9M42](/packages/kirschbaum-development-eloquent-power-joins)[mongodb/laravel-mongodb

A MongoDB based Eloquent model and Query builder for Laravel

7.1k8.0M90](/packages/mongodb-laravel-mongodb)[yajra/laravel-oci8

Oracle DB driver for Laravel via OCI8

8723.1M23](/packages/yajra-laravel-oci8)[bavix/laravel-wallet

It's easy to work with a virtual wallet.

1.3k1.2M19](/packages/bavix-laravel-wallet)[glushkovds/phpclickhouse-laravel

Adapter of the most popular library https://github.com/smi2/phpClickHouse to Laravel

2051.4M2](/packages/glushkovds-phpclickhouse-laravel)[laravel-liberu/laravel-gedcom

A package that converts gedcom files to Eloquent models

782.5k1](/packages/laravel-liberu-laravel-gedcom)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
