Laravel 使用Chart JS添加图表

Laravel 使用Chart JS添加图表

在本节中,我们将学习如何通过使用Chart JS添加图表。我们将使用Laravel来完成这个任务。Laravel的模板引擎非常强大。在Laravel的视图中,可以轻松地使用JS、JS库以及PHP变量。在我们的Laravel应用程序中,我们将使用Chart.js库来创建图表。Chart.js库可以使用面积图、条形图、柱状图、折线图等等。我们还可以使用该库提供的其他图形和主题来使用更多的图表。

下面的示例对于我们在Laravel服务器端中添加图表很有用。我们将使用数据库来获取数据,然后将这些数据设置到Chart JS函数中。在下面的示例中,我们将使用chart JS来创建条形图,并将该条形图用在我们的Laravel应用程序中。添加图表到Laravel中的过程如下所述。

首先,在我们的routes.php文件中添加chartjs路由。

app/Http/routes.php

Route::get('chart
s', 'HomeController@chartjs');

之后,我们将使用Homecontroller添加以下方法。

HomeController的方法

public function chartjs()
{
    viewer = View::select(DB::raw("SUM(numberofview) as count"))
        ->orderBy("created_at")
        ->groupBy(DB::raw("year(created_at)"))
        ->get()->toArray();viewer = array_column(viewer, 'count');click = Click::select(DB::raw("SUM(numberofclick) as count"))
        ->orderBy("created_at")
        ->groupBy(DB::raw("year(created_at)"))
        ->get()->toArray();
    click = array_column(click, 'count');

    return view('chartjs')
            ->with('viewer',json_encode(viewer,JSON_NUMERIC_CHECK))
            ->with('click',json_encode(click,JSON_NUMERIC_CHECK));
}

现在我们将使用我们的chartjs视图文件,将下面的代码添加到该文件中,如下所示:

chartjs.blade.php

@extends('layouts.app')

@section('content')
<script src="https://raw.githubusercontent.com/nnnick/Chart.js/master/dist/Chart.bundle.js"></script>
<script>
    var year = ['2013','2014','2015', '2016'];
    var data_click = <?php echo click; ?>;
    var data_viewer = <?php echoviewer; ?>;

    var barChartData = {
        labels: year,
        datasets: [{
            label: 'Click',
            backgroundColor: "rgba(220,220,220,0.5)",
            data: data_click
        }, {
            label: 'View',
            backgroundColor: "rgba(151,187,205,0.5)",
            data: data_viewer
        }]
    };

    window.onload = function() {
        var ctx = document.getElementById("canvas").getContext("2d");
        window.myBar = new Chart(ctx, {
            type: 'bar',
            data: barChartData,
            options: {
                elements: {
                    rectangle: {
                        borderWidth: 2,
                        borderColor: 'rgb(0, 255, 0)',
                        borderSkipped: 'bottom'
                    }
                },
                responsive: true,
                title: {
                    display: true,
                    text: 'Yearly Website Visitor'
                }
            }
        });

    };
</script>

<div class="container">
    <div class="row">
        <div class="col-md-10 col-md-offset-1">
            <div class="panel panel-default">
                <div class="panel-heading">Dashboard</div>
                <div class="panel-body">
                    <canvas id="canvas" height="280" width="600"></canvas>
                </div>
            </div>
        </div>
    </div>
</div>

@endsection

现在我们的上述代码已经准备好了,我们可以运行它。当我们运行时,将会生成以下输出:

Laravel 使用Chart JS添加图表

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程