flowframe / laravel-trend
轻松生成模型趋势
v0.2.0
2024-03-14 13:45 UTC
Requires
- php: ^8.2
- illuminate/contracts: ^8.37|^9|^10.0|^11.0
- spatie/laravel-package-tools: ^1.4.3
Requires (Dev)
- nunomaduro/collision: ^5.3|^6.1|^8.0
- orchestra/testbench: ^6.15|^7.0|^8.0|^9.0
- pestphp/pest: ^1.18|^2.34
- pestphp/pest-plugin-laravel: ^1.1|^2.3
- spatie/laravel-ray: ^1.23
- vimeo/psalm: ^4.8|^5.6
README
为您的模型生成趋势。轻松生成图表或报告。
为什么?
大多数应用程序都需要生成图表或报告。重复进行这个过程可能会很痛苦。这就是我们创建了一个流畅的Laravel包来解决这个问题。
您可以对每分钟、每小时、每天、每月和每年的平均数、最小值、最大值和总计进行聚合。
安装
您可以通过composer安装此包
composer require flowframe/laravel-trend
用法
要为您的模型生成趋势,导入Flowframe\Trend\Trend
类,并传递一个模型或查询。
示例
// Totals per month $trend = Trend::model(User::class) ->between( start: now()->startOfYear(), end: now()->endOfYear(), ) ->perMonth() ->count(); // Average user weight where name starts with a over a span of 11 years, results are grouped per year $trend = Trend::query(User::where('name', 'like', 'a%')) ->between( start: now()->startOfYear()->subYears(10), end: now()->endOfYear(), ) ->perYear() ->average('weight');
开始趋势
您必须使用::model()
或::query()
开始趋势。两者之间的区别在于,使用::query()
允许您添加额外的过滤器,就像您习惯使用eloquent一样。使用::model()
将仅按原样消费它。
// Model Trend::model(Order::class) ->between(...) ->perDay() ->count(); // More specific order query Trend::query( Order::query() ->hasBeenPaid() ->hasBeenShipped() ) ->between(...) ->perDay() ->count();
间隔
您可以使用以下聚合间隔
perMinute()
perHour()
perDay()
perMonth()
perYear()
聚合
您可以使用以下聚合
sum('column')
average('column')
max('column')
min('column')
count('*')
日期列
默认情况下,laravel-trend假定正在执行操作的模型有一个created_at
日期列。如果您的模型使用不同的列名作为日期或您想使用不同的列,应使用dateColumn(string $column)
方法指定它。
示例
Trend::model(Order::class) ->dateColumn('custom_date_column') ->between(...) ->perDay() ->count();
这允许您处理具有自定义日期列名称的模型,或者当您想根据不同的日期列分析数据时。
驱动程序
我们目前支持以下三个驱动程序
- MySQL
- MariaDB
- SQLite
- PostgreSQL
安全漏洞
请参阅我们的安全策略了解如何报告安全漏洞。
致谢
许可证
MIT许可证(MIT)。请参阅许可证文件获取更多信息。