Laravel Trend
Laravel Trend stats
- Downloads
- 252.2K
- Stars
- 309
- Open Issues
- 7
- Forks
- 42
Easily generate model trends
Laravel Trend Package Summary
Overview
The Laravel Trend package provides a fluent, efficient way to generate trends and aggregates such as charts or reports directly from your models in a Laravel application. It simplifies the task of aggregating data over different intervals, making it ideal for applications that require dynamic reporting features.
Key Features
- Flexible Aggregation: Supports various aggregation operations like sum, average, max, min, and count.
- Multiple Intervals: Allows data to be aggregated over different time intervals including minute, hour, day, month, and year.
- Support for Eloquent Queries: Easily integrate with Laravel's Eloquent ORM, supporting both direct model trend analysis or more complex, query-based trends.
- Database Compatibility: Compatible with MySQL, SQLite, and PostgreSQL, ensuring broad database support.
Installation
Install the package via Composer:
composer require flowframe/laravel-trend
Usage
Begin by importing the Trend class. You can generate trends by starting with either a model or a query, specifying the desired time interval and the type of aggregation.
Examples
-
Total Users per Month:
$trend = Trend::model(User::class)->between(start: now()->startOfYear(), end: now()->endOfYear())->perMonth()->count(); -
Average Weight of Users Starting with 'A' per Year:
$trend = Trend::query(User::where('name', 'like', 'a%'))->between(start: now()->startOfYear()->subYears(10), end: now()->endOfYear())->perYear()->average('weight');
Starting a Trend
- Use
::model()for direct model analysis without additional filters. - Use
::query()to incorporate filters and more complex queries.
Aggregation and Intervals
- Utilize methods like
perDay(),perMonth(), etc., to set the aggregation interval. - Functions such as
sum('column'),average('column'), and others are used to define the type of data aggregation.
Reporting Security Vulnerabilities
For security-related concerns, please refer to the package's security policy documentation.
This package is maintained by Lars Klopstra and other contributors, providing a robust solution for generating data trends in Laravel applications.