PHPackages                             shanjing/laravel-statistics - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. shanjing/laravel-statistics

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

shanjing/laravel-statistics
===========================

A laravel statistics library

v0.2.8(2y ago)35.3kMITPHP

Since Sep 27Pushed 2y ago2 watchersCompare

[ Source](https://github.com/shanjing-inc/laravel-statistics)[ Packagist](https://packagist.org/packages/shanjing/laravel-statistics)[ RSS](/packages/shanjing-laravel-statistics/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (4)Dependencies (4)Versions (22)Used By (0)

 laravel-statistics
====================

[](#-laravel-statistics-)

`shanjing laravel-statistics`是一个基于[ laravel ](https://laravel.com/)开发而成的统计工具，只需很少的代码即可快速构建出一个功能完善的统计模块。开箱即用，对后端开发者非常友好。

### 功能特性

[](#功能特性)

- 简洁优雅 API
- 当缺失对应日期的数据时，自动补充 0 作为默认数据
- json 格式存储数据，易于扩展字段, 存储更优雅

### 环境

[](#环境)

- PHP &gt; 7.4
- Laravel 8.\*
- MySQL 8.\*

### 安装

[](#安装)

> 如果安装过程中出现`composer`下载过慢或安装失败的情况，请运行命令`composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/`把`composer`镜像更换为阿里云镜像。

首先需要安装`laravel`框架，如已安装可以跳过此步骤。如果您是第一次使用`laravel`，请务必先阅读文档 [安装 《Laravel中文文档》](https://learnku.com/docs/laravel/8.x/installation/9354) ！

```
composer create-project --prefer-dist laravel/laravel 项目名称 7.*
# 或
composer create-project --prefer-dist laravel/laravel 项目名称
```

安装完`laravel`之后需要修改`.env`文件，设置数据库连接设置正确

```
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=database
DB_USERNAME=root
DB_PASSWORD=
```

安装`laravel-statistics`

```
cd {项目名称}
$ composer require shanjing/laravel-statistics -vvv
```

然后运行下面的命令来发布资源：

```
php artisan laravel-statistics:publish
```

在该命令会生成配置文件`config/statistics.php`，可以在里面修改数据库连接、以及表名，建议都是用默认配置不修改。

```

// 指定数据库链接.
'connection' => '',

// 指定表名，如果后期修改数据库表名，这里也需要修改成对应的表名.
'statistics_table' => 'laravel_statistics',

```

然后运行下面的命令完成安装：

- 注意： 由于运行安装是针对具体的迁移文件运行的， 迁移文件名不可以修改。
    - 文件："2021\_09\_22\_083561\_create\_statistics\_table.php"，
    - 目录：项目目录/database/migrations/

```
php artisan laravel-statistics:install
```

### 使用

[](#使用)

上述步骤操作完成之后就可以使用统计功能了

- 使用统计表统计数据和读取数据

读取数据

```
// 今天淘宝销量、销售额
// period   year | month | week | day
// orderBy  desc | asc
app('statistics')
->get("taobao", ['gmv', 'order_num'])
->period('day')
->orderBy("desc")
->exec();

// 20210901~20210921 淘宝销量、销售额
app('statistics')
->get("taobao", ['gmv', 'order_num'])
->occurredBetween([20210901, 20210921])
->period('day')
->orderBy("desc")
->exec();
```

存储数据

```
// 更新数据
// $arr： 会已 json 的格式存储在 data 列
// taobao： 存储在 key 列
// occurredAt: 存储在 occurred_at 列
$arr = ['gmv'=>'value', 'order_num'=>'value'];
app('statistics')
->save("taobao", $arr)
->occurredAt(20210921)
->exec();
```

- 使用已有的 model 展示实时数据

1）向需要统计功能的 model 引入 statistics 模块

```
