Laravel快速创建统计图表

1、需要的css:

<link rel="stylesheet" href="https://cdn.bootcss.com/morris.js/0.5.1/morris.css">

2、blade主代码:


<h2>按照时间查看</h2>
<hr>
<ul class="nav nav-pills">
    <li class="{{ request('days') == 7 || request('days') == '' ? 'active' : ''}}"><a href="{{ url('admin/numberCount?days=7') }}">7 天</a></li>
    <li class="{{ request('days') == 30 ? 'active' : ''}}"><a href="{{ url('admin/numberCount?days=30') }}">30 天</a></li>
    <li class="{{ request('days') == 60 ? 'active' : ''}}"><a href="{{ url('admin/numberCount?days=60') }}">60 天</a></li>
    <li class="{{ request('days') == 90 ? 'active' : ''}}"><a href="{{ url('admin/numberCount?days=90') }}">90 天</a></li>
</ul>
<div id="stats-container" style="height: 250px;"></div>


#渐变色例子
<h1>Bar charts</h1>
<div id="graph"></div>

3、需要的js代码:

<script src="https://cdn.bootcss.com/jquery/1.9.0/jquery.js"></script>
<script src="https://cdn.bootcss.com/raphael/2.1.0/raphael-min.js"></script>
<script src="https://cdn.bootcss.com/morris.js/0.5.1/morris.min.js"></script>

<script>
    var data = JSON.parse('{!! $stats !!}');#务必注意这里
    // console.log(data);
    // new Morris.Bar({#如果需要柱状图解开她
    Morris.Line({
      element: 'stats-container',
      data: data,
      xkey: 'date',#横坐标
      ykeys: ['customer', 'teacher'],
      labels: ['家长', '老师']
    });
 #渐变色例子
 Morris.Bar({
      element: 'graph',
      data: [
        {x: '2011 Q1', y: 0},
        {x: '2011 Q2', y: 1},
        {x: '2011 Q3', y: 2},
        {x: '2011 Q4', y: 3},
        {x: '2012 Q1', y: 4},
        {x: '2012 Q2', y: 5},
        {x: '2012 Q3', y: 6},
        {x: '2012 Q4', y: 7},
        {x: '2013 Q1', y: 8}
      ],
      xkey: 'x',
      ykeys: ['y'],
      labels: ['Y'],
      barColors: function (row, series, type) {
        if (type === 'bar') {
          var red = Math.ceil(255 * row.y / this.ymax);
          return 'rgb(' + red + ',0,0)';
        }
        else {
          return '#000';
        }
      }
    });
</script>

HomeController查询代码:

...
use Carbon\Carbon;
...

  public function numberCount()
    {
        $days = request('days', 7);

        $range = Carbon::today()->subDays($days);
        // \DB::enableQueryLog();
        $stats = Customer::where('created_at', '>=', $range)
            ->groupBy('date')
            ->orderBy('date', 'DESC')
            ->get([
                \DB::raw('Date(created_at) as date'),
                \DB::raw('sum(CASE WHEN customer_type = 1 THEN 1 ELSE 0 END) AS customer'),
                \DB::raw('sum(CASE WHEN customer_type = 2 THEN 1 ELSE 0 END) AS teacher'),
            ])
            ->toJSON();
    return view('admin.numberCount', compact('stats', 'data'));
}

曲线图:

这里写图片描述

柱状图:

这里写图片描述

这里写图片描述

参考:
https://gist.github.com/msurguy/9984618

http://morrisjs.github.io/morris.js/bars.html

国内免费的cdn:
http://www.bootcdn.cn/?

可以设置的颜色:

lineColors: ['#0b62a4', '#7A92A3', '#4da74d', '#afd8f8', '#edc240', '#cb4b4b', '#9440ed'],
十六进制颜色值:#0b62a4
十六进制颜色值:#7A92A3
十六进制颜色值:#4da74d
十六进制颜色值:#afd8f8
十六进制颜色值:#edc240
十六进制颜色值:#cb4b4b
十六进制颜色值:#9440ed

MySQL DATE_FORMAT用法:

DATE_FORMAT(date,format)

根据format字符串格式化date值。下列修饰符可以被用在format字符串中:

%M 月名字(January……December)
%W 星期名字(Sunday……Saturday)
%D 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)
%Y 年, 数字, 4 位
%y 年, 数字, 2 位
%a 缩写的星期名字(Sun……Sat)
%d 月份中的天数, 数字(00……31)
%e 月份中的天数, 数字(0……31)
%m 月, 数字(01……12)
%c 月, 数字(1……12)
%b 缩写的月份名字(Jan……Dec)
%j 一年中的天数(001……366)
%H 小时(00……23)
%k 小时(0……23)
%h 小时(01……12)
%I 小时(01……12)
%l 小时(1……12)
%i 分钟, 数字(00……59)
%r 时间,12 小时(hh:mm:ss [AP]M)
%T 时间,24 小时(hh:mm:ss)
%S 秒(00……59)
%s 秒(00……59)
%p AM或PM
%w 一个星期中的天数(0=Sunday ……6=Saturday )
%U 星期(0……52), 这里星期天是星期的第一天
%u 星期(0……52), 这里星期一是星期的第一天
%% 一个文字“%”。

举例:

select DATE_FORMAT(create_time,'%Y%u') weeks,count(caseid) count from tc_case group by weeks;    
select DATE_FORMAT(create_time,'%Y%m%d') days,count(caseid) count from tc_case group by days;    
select DATE_FORMAT(create_time,'%Y%m') months,count(caseid) count from tc_case group by months;   

参考:
https://blog.csdn.net/mengtao0609/article/details/54138623

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Laravel8 是一个流行的 PHP Web 框架,它提供了许多便捷的功能和工具,可以使 Web 开发变得更加快速和高效。下面是一个 Laravel8 的快速入门指南: 1. 安装 Laravel8:可以通过 Composer 来安装 Laravel8,命令如下: ``` composer create-project --prefer-dist laravel/laravel blog ``` 这个命令会在当前目录下创建一个名为 "blog" 的 Laravel8 项目。 2. 配置数据库:在 Laravel8 中,配置数据库非常简单,只需要在 .env 文件中添加数据库相关的配置即可,例如: ``` DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laravel DB_USERNAME=root DB_PASSWORD= ``` 3. 创建控制器:可以通过以下命令来创建一个控制器: ``` php artisan make:controller UserController ``` 这个命令会在 app/Http/Controllers 目录下创建一个名为 UserController 的控制器文件。 4. 创建路由:在 Laravel8 中,可以通过路由来定义 URL 和控制器之间的关系,例如: ``` Route::get('/user', 'UserController@index'); ``` 这个路由定义了当访问 /user URL 时,会调用 UserController 的 index 方法。 5. 创建视图:在 Laravel8 中,可以通过视图来定义页面的 HTML 代码,例如: ``` <!DOCTYPE html> <html> <head> <title>My Blog</title> </head> <body> <h1>Welcome to my blog</h1> </body> </html> ``` 这个视图定义了一个简单的 HTML 页面。 6. 渲染视图:在控制器中,可以通过以下代码来渲染视图: ``` return view('welcome'); ``` 这个代码会渲染名为 "welcome" 的视图文件。 以上就是 Laravel8 的快速入门指南,希望能够帮助你快速上手 Laravel8。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SHUIPING_YANG

你的鼓励是我创作的最大动力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值