【问题标题】:Loading Laravel Chart consoletvs/charts:7.*加载 Laravel 图表 consoletvs/charts:7.*
【发布时间】:2020-07-04 16:33:40
【问题描述】:

我是 laravel 图表的新手。我认为按照文档制作示例图表将是一个垫脚石。按照文档表单使用composer require consoletvs/charts:7.* 将包添加到我的项目中,并通过运行php artisan vendor:publish --tag=charts 发布配置文件,然后使用以下命令创建一个新图表:php artisan make:chart SampleChartApp\Chart

在 SampleChart 类中我做了以下图表配置

 public ?string $name = 'SampleChart';
  public ?string $routeName = 'SampleChart';
   public ?array $middlewares = ['auth'];

然后我使用 App\Providers\AppServiceProvider 和文档中所述的代码手动注册

 public function boot(Charts $charts)
        {
            $charts->register([
                \App\Charts\SampleChart::class
            ]);
        }

关于在我的视图中呈现图表;我输入了以下代码

<div id="chart" style="height: 300px;">    </div>
<!-- Charting library -->
 
<script src="{{ asset('js/Chart.min.js') }}"></script>//downloaded from https://unpkg.com/echarts/dist/echarts.min.js
<!-- Chartisan -->
<script src="{{ asset('js/chartisan_chartjs.js') }}">
</script> //downloaded from https://unpkg.com/@chartisan/echarts/dist/chartisan_echarts.js
<!-- Your application script -->
<script>
  const chart = new Chartisan({
    el: '#chart',
    url: "@chart('SampleChart')",
    loader: {
        color: '#222',
        size: [30, 30],
        type: 'bar',
        textColor: '#000',
        text: 'Loading some chart data...',
    },
  });
</script>

输出是一个带有标题“正在加载一些图表数据...”的弹性项目,没有任何显示。卡住了

我使用了https://dev.to/arielmejiadev/use-laravel-charts-in-laravel-5bbmhttps://izwebtechnologies.com/2019/06/03/how-to-create-charts-in-laravel/ 的教程表格,但没有一个能让我完成制作图表。虽然这两个教程链接是针对chart6的。*我后来读到这两个有不同的图表设计方法。 我正在使用 Laravel7charts:7.*

【问题讨论】:

  • 你弄明白了吗?如果你这样做了,我相信很多人会支持你的答案(看看教程是如何缺乏的)
  • 它占用了我的时间,我不得不切换。但一定会研究它并为它制作教程

标签: javascript php laravel charts chart.js


【解决方案1】:

我是作者。

有些问题可能与 laravel 图表有关,而其他问题可能与 chartisan 有关。我正在尽最大努力让这里的每个人都开心,但似乎人们对文档不满意。

我正在创建一个示例页面,其中包含 chartisan 页面上的各种示例。

请记住,laravel 图表现在仅充当 chartisan 的 php 包的包装器。

对于一个人来说这是一个如此大的项目,我希望看到建设性的反馈。

chartisan 文档中有哪些不清楚的地方?

【讨论】:

  • 我必须首先赞扬你的努力。你的工作真的很棒,祝你更成功。我面临的文档问题是没有明确示例的解释方式。我相信创建示例页面可以解决 90% 不太清楚的问题,尤其是文档的配置方面。我必须在没有看到可见示例的情况下阅读并阅读文档才能理解其中的大部分内容。图 6。 * 有很多图表 7* 没有的示例
  • chartisan 文档上的所有内容都不详细,从钩子不等,如果我们可以直接从后端指定我们想要的图表类型,也可以从后端指定颜色,而不是来到前端
【解决方案2】:

尝试在不设置public ?array $middlewares = ['auth']; 的情况下运行。 只是public ?array $middlewares = [];

^^^^^^^^^^ 这就是我使用 Laravel 包的方式 ^^^^^^^^^^

vvvvvvvvvvvvvvvvvvv 我现在就是这样用的 vvvvvvvvvvvvvvvvvvvv

使用 ConsoleTV/Charts 一段时间后,我决定不再像 Laravel 包那样使用它。 我不再使用它,只使用 javascript 版本。

为了获取数据,我这样做了:

创建一个控制器,命名为你想要的任何名称,并放置一个这样的函数:

    public function chartSample1()
    {
        $data = array(
            "chart" => array(
                "labels" => ["First", "Second", "Third"]
            ),
            "datasets" => array(
                array("name" => "Sample 1", "values" => array(10, 3, 7)),
                array("name" => "Sample 2", "values" => array(1, 6, 2)),
            )
        );

        return $data;
    }

在“routes/web.php”上添加:

Route::get('/chartSample1', 'MyChartController@chartSample1')->name('chartSample1');

在页面上:

@extends('layouts.app')

@section('content')
<div class="row justify-content-center">
    <div class="col-sm-12 align-self-center">
        <div class="row">
            <div class="col-lg-3">
                <div class="card shadow p-3 mb-5 bg-white rounded">
                    <div class="card-body">
                        <h5 class="card-title">Special title treatment</h5>

                        <div id="chart" style="height: 300px;"></div>

                        <a href="#" class="btn btn-primary">Go somewhere</a>
                    </div>
                </div>
            </div>
            <div class="col-lg-3">
                <div class="card shadow p-3 mb-5 bg-white rounded">
                    <div class="card-body">
                        <h5 class="card-title">Special title treatment</h5>
                        <div id="chart2" style="height: 300px;"></div>
                        <a href="#" class="btn btn-primary">Go somewhere</a>
                    </div>
                </div>
            </div>
            <div class="col-lg-3">
                <div class="card shadow p-3 mb-5 bg-white rounded">
                    <div class="card-body">
                        <h5 class="card-title">Special title treatment</h5>
                        <div id="chart3" style="height: 300px;"></div>
                        <a href="#" class="btn btn-primary">Go somewhere</a>
                    </div>
                </div>
            </div>
            <div class="col-lg-3">
                <div class="card shadow p-3 mb-5 bg-white rounded">
                    <div class="card-body">
                        <h5 class="card-title">Special title treatment</h5>
                        <p class="card-text">With supporting text below as a natural lead-in to additional content.</p>
                        <a href="#" class="btn btn-primary">Go somewhere</a>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>


{{-- This script has more features --}}
<script src="https://unpkg.com/chart.js/dist/Chart.min.js"></script>
<script src="https://unpkg.com/@chartisan/chartjs/dist/chartisan_chartjs.js"></script>

{{-- 
<script src="https://unpkg.com/echarts/dist/echarts.min.js"></script>
<script src="https://unpkg.com/@chartisan/echarts/dist/chartisan_echarts.js"></script> 
--}}

</script>
<script>
    const chart = new Chartisan({
        el: '#chart',
        url: "{{ route('chartSample1') }}",
        hooks: new ChartisanHooks()
        .colors(['#ECC94B', '#4299E1'])
        .legend()
        loader: {
            color: '#ff00ff',
            size: [30, 30],
            type: 'bar',
            textColor: '#11ff00',
            text: 'Loading some chart data...',
        }
    });
    
    const chart2 = new Chartisan({
        el: '#chart2',
        data: {
            chart: { "labels": ["First", "Second", "Third"] },
            datasets: [
                { "name": "Sample 1", "values": [10, 3, 7] },
                { "name": "Sample 2", "values": [5, 6, 2] }
            ],
        },
        hooks: new ChartisanHooks()
            .colors(['#ECC94B', '#4299E1', '#AAEE11'])
            .legend({ position: 'left' })
            .beginAtZero()
            .datasets([{ type: 'line', fill: false }, 'bar']),
    });

    const chart3 = new Chartisan({
        el: '#chart3',
        data: {
            chart: { "labels": ["First", "Second", "Third"] },
            datasets: [
                { "name": "Sample 1", "values": [10, 3, 7] },
            ],
        },
        hooks: new ChartisanHooks()
            .colors(['#ECC94B', '#4299E1', '#AAEE11'])
            .datasets([{ type: 'pie', fill: true }, 'pie']),
    });

</script>


【讨论】:

  • 我做了,但没有任何改变。我只有在登录后才能访问该页面。
  • 我想要一个示例步骤来了解如何使用图表 7* 制作图表
  • 我做了同样的例子,就像你没有登录一样。当我从 SampleChart.php 中删除中间件属性时,它可以工作。
  • 非常感谢。我犯了一个小错误。它真的奏效了。但是图表在一秒钟内消失了。我该怎么做呢
【解决方案3】:

我遇到了类似的问题,我已经能够解决它。您的图表类中的配置不是强制性的。您可以选择忽略它们。

您的渲染网址也错误。它应该在蛇盒中:

//SampleChart will be
@chart('sample_chart')

//PostData will be
@chart('post_data')

如果您在 Chart 类中指定了路线,则必须使用:@chart('your_route')。如果您不知道自己的路线,请使用php artisan route:list -c 命令查看。

如果要指定图表的类型,则必须使用钩子。

我自己也遇到了一些问题。一切都适用于折线图和条形图,但我无法呈现饼图。甜甜圈也不起作用。

【讨论】:

  • 我目前的问题是我的图表在出现几秒钟后消失了。控制台中也没有显示问题。你知道是什么导致图表消失吗?你遇到过这个问题吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-24
  • 2021-03-21
  • 2019-07-17
  • 2020-11-07
  • 1970-01-01
  • 2021-12-05
相关资源
最近更新 更多