dtkyayvldeaqhl7151 2019-06-07 04:46
浏览 146
已采纳

在laravel中显示条形图

I try to display bar chart based on data stored in table of database like image below, below image just for ilustration Bar Chart

  1. Route
Route::get('/chart', 'ChartController@index');
Route::get('/chart', 'ChartController@chart');
  1. Controller
public function index()
{
    return view('chart.index');
}

public function chart()
{
    $result = DB::table('agreement')->select('val_agrement')->get();
    return response()->json($result);
}            

  1. blade template
@extends('adminlte::page')
    @section('content')
        <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.12.3/css/bootstrap-select.min.css">
            <body>
            <div class="row">
            <div class="col-md-10 col-md-offset-1">
            <div class="panel panel-default">
                <div class="panel-heading"><b>CHART</b></div>
                    <div class="panel-body">
                    <canvas id="canvas" height="300" width="700"></canvas>
                </div>
            </div>
        </div>
        </div>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.12.3/js/bootstrap-select.min.js" charset="utf-8"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.6.0/Chart.bundle.js" charset="utf-8"></script>
        <script>
            var url = "{{url('chart')}}";
            var ctx = document.getElementById("canvas").getContext('2d');
            var myChart = new Chart(ctx, {
                type: 'bar',
                data: {
                    labels:VALUEA,
                    datasets: [{
                        label: 'VALUEA',
                        data: valuea,
                        borderWidth: 1
                    }]
                },
                options: {
                    scales: {
                        yAxes: [{
                            ticks: {
                                beginAtZero:true
                            }
                        }]
                    }
                }
            });
        </script>
    @endsection

how to create chart in laravel, so far, my code as above. thank you

im sorry, its difficult to write blade code here.

  • 写回答

2条回答 默认 最新

  • duanba4942 2019-06-07 06:31
    关注

    Recommendation? Use Vue.js components with Chart.js. Something like this might help you.

    Routes/web.php

    Route::get('/chart', 'ChartController@chart');
    

    ChartController

    public function chart()
    {
        $query = DB::table('agreement')->select('val_agrement')->get();
        $result = $query->toArray();
    
        return view('your-blade', [
            'result' => $result
        ]);
    }
    

    YourComponent.vue

    <script>
      import { Bar } from 'vue-chartjs'
    
      export default {
      extends: Bar,
      props: ['chartData'],
    
      mounted() {
        var length = this.chartData.length;
        var array = this.chartData;
    
        // Our array to store the data as we loop through it    
        var dataArray = [];
    
        for ( var i = 0; i < length; i++ )
          {
            // Push your data to the array
            dataArray.push(array[i] ? array[i].val_agrement : '');
          }
    
       this.renderChart({
          labels: 'Val Agreement',
          datasets: [
            {
              label: 'Your super cool bar chart',
              backgroundColor: 
                '#0088cc',
              borderColor: [
                'rgb(13, 29, 63)',
              ],
              data: dataArray,
            }
          ]
        }, {responsive: true, maintainAspectRatio: false,})
      }
    }
    </script>
    

    your-blade.blade.php

    <your-component :chart-data="{{ json_encode($result) }}"> </your-component>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题