PHP code example of elgibor-solution / laravel-report-builder

1. Go to this page and download the library: Download elgibor-solution/laravel-report-builder library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

elgibor-solution / laravel-report-builder example snippets


namespace App\Reports\Sources;

use ElgiborSolution\AdvancedReports\Sources\ReportSource;
use Illuminate\Contracts\Database\Query\Builder;

class SalesOrderReportSource extends ReportSource
{
    public function key(): string { return 'sales_orders'; }
    public function label(): string { return 'Sales Orders'; }

    protected function defineFields(): array
    {
        return [
            $this->field('order_number', 'Order No'),
            $this->field('order_date', 'Order Date', type: 'date'),
            $this->field('total_amount', 'Amount', type: 'decimal', aggregatable: true),
        ];
    }

    public function query(array $parameters = []): Builder
    {
        return \DB::table('sales_orders');
    }
}

use ElgiborSolution\AdvancedReports\Facades\AdvancedReports;

AdvancedReports::registerSource(\App\Reports\Sources\SalesOrderReportSource::class);

use ElgiborSolution\AdvancedReports\Facades\AdvancedReports;
use ElgiborSolution\AdvancedReports\Models\Report;

Report::create([
    'name' => 'Sales',
    'code' => 'sales',
    'data_source' => 'sales_orders',
    'definition' => [
        'name' => 'Sales',
        'data_source' => 'sales_orders',
        'parameters' => [
            ['name' => 'date_from', 'type' => 'date', 'sc'],
        ],
        'aggregates' => [
            ['field' => 'total_amount', 'function' => 'sum'],
        ],
    ],
    'is_active' => true,
    'is_public' => true,
]);

$result = AdvancedReports::run('sales', ['date_from' => '2026-01-01']);
$html = AdvancedReports::render('sales', 'html');
$json = AdvancedReports::render('sales', 'json');
$download = AdvancedReports::export('sales', 'csv');
$export = AdvancedReports::queueExport('sales', 'pdf');
bash
php artisan vendor:publish --tag=advanced-reports-config
php artisan vendor:publish --tag=advanced-reports-migrations
php artisan vendor:publish --tag=advanced-reports-views
bash
php artisan migrate
bash
php artisan make:report-source SalesOrderReportSource
bash
php artisan advanced-reports:install
php artisan make:report-source SalesOrderReportSource
php artisan advanced-reports:cleanup-runs --dry-run