zaimealabs / aggregate
ZaimeaLabs Aggregate 包。
1.0
2024-06-26 13:21 UTC
Requires
- php: ^8.2
- illuminate/contracts: ^10.0|^11.0
Requires (Dev)
- nunomaduro/collision: ^7.0|^8.0
- orchestra/testbench: ^8.0|^9.0
- pestphp/pest: ^2.0
- pestphp/pest-plugin-laravel: ^2.0
- vimeo/psalm: ^5.0
README
生成模型的汇总数据,以便在应用程序中生成图表或报告。
嘿 👋 感谢您考虑捐赠,有了这些捐赠,我可以继续工作,为 ZaimeaLabs 项目做出贡献。
用法
要为您的模型生成汇总,导入 ZaimeaLabs\Aggregate\Aggregate
类,并传递一个模型或查询。 ::model()
直接使用。 ::query()
允许您使用额外的过滤器,如 where()
。
// Totals per month $model = Aggregate::model(User::class) ->between( start: now()->startOfYear(), end: now()->endOfYear(), ) ->perMonth() ->count(); // Count users register per year, results are grouped per month $query = Aggregate::query(User::whereNotNull('email_verified_at')) ->between( start: now()->startOfYear()->subYears(10), end: now()->endOfYear(), ) ->perYear() ->count(); // Average user calendar activity where record type is work with a over a span of 11 years, results are grouped per year $query = Aggregate::query(Record::where('type', 'work')) ->dateColumn('scheduled_at') ->between( start: now()->startOfYear()->subYears(10), end: now()->endOfYear()) ->perYear() ->sumTime('duration');
日期列
如果您的列不是 created_at
,只需使用 dateColumn('pointed_date_column')
->dateColumn('pointed_date_column')
汇总
您可以使用以下汇总
区间
您可以使用以下汇总区间