无法在使用 Lavacharts 创建的 Laravel 5.1 中渲染 LineChart

rah*_*590 3 php laravel laravel-5.1

我已经按照教程https://github.com/kevinkhill/lavacharts在我的基于 Laravel 5.1 的应用程序中呈现图表。但无法渲染它。它给了我错误LineChart('Stocks') was not found in View。下面是我的控制器代码和视图代码。需要进行哪些更改才能解决此问题?

图表控制器.php

public function generatecharts()
{

$lava = new Lavacharts;
$stocksTable = $lava->DataTable();

 $stocksTable->addDateColumn('Day of Month')
            ->addNumberColumn('Projected')
            ->addNumberColumn('Official');




// Random Data For Example
for ($a = 1; $a < 30; $a++)
{
    $rowData = array(
      "2014-8-$a", rand(800,1000), rand(800,1000)
    );

    $stocksTable->addRow($rowData);
}

  $Chart = $lava->LineChart('Stocks')
                ->setOptions(array(
                    'datatable' => $stocksTable,
                    'title' => 'Stock Market Trends'
                  ));

return view('pages.analytics');

}
Run Code Online (Sandbox Code Playgroud)

分析.blade.php

@extends('layouts.app')
@section('title') analytics:: @parent @stop
@section('content')



<div class="row">
    <div class="page-header">
        <h2>Welcome to analytics</h2>
    </div>

</div>
<div id="stock-div"></div>
echo $lava->render('LineChart', 'Stocks', 'stock-div');
@linechart('Stocks', 'stocks-div');


@endsection
Run Code Online (Sandbox Code Playgroud)

MaX*_*i32 5

1)它在文档中说明,如果您使用的是Laravel,则需要更改

$lava-> to \Lava:: (the slash is important)
Run Code Online (Sandbox Code Playgroud)

2)实际上这行代码:

 echo $lava->render('LineChart', 'Stocks', 'stock-div');
Run Code Online (Sandbox Code Playgroud)

相当于这一行:

 @linechart('Stocks', 'stocks-div');
Run Code Online (Sandbox Code Playgroud)

所以你在这里有一个重复的代码(只需删除一行)。

您有 3 个选项可以放在您的视图中:

您可以使用 PHP 标签:

<?php echo \Lava::render('LineChart', 'Stocks', 'stock-div'); ?>
Run Code Online (Sandbox Code Playgroud)

或者你可以使用这个:

{!! \Lava::render('LineChart', 'Stocks', 'stock-div') !!}
Run Code Online (Sandbox Code Playgroud)

或者这个简化版

@linechart('Stocks', 'stocks-div');
Run Code Online (Sandbox Code Playgroud)

解决方案:

图表控制器.php

public function generatecharts()
{

$stocksTable = \Lava::DataTable();

 $stocksTable->addDateColumn('Day of Month')
            ->addNumberColumn('Projected')
            ->addNumberColumn('Official');




// Random Data For Example

for ($a = 1; $a < 30; $a++)
{
    $rowData = array(
      "2014-8-$a", rand(800,1000), rand(800,1000)
    );

    $stocksTable->addRow($rowData);
}

  $Chart = \Lava::LineChart('Stocks')
                ->setOptions(array(
                    'datatable' => $stocksTable,
                    'title' => 'Stock Market Trends'
                  ));

return view('pages.analytics');

}
Run Code Online (Sandbox Code Playgroud)

分析.blade.php

@extends('layouts.app')
@section('title') analytics:: @parent @stop
@section('content')



<div class="row">
    <div class="page-header">
        <h2>Welcome to analytics</h2>
    </div>

</div>
<div id="stock-div"></div>

{!! \Lava::render('LineChart', 'Stocks', 'stock-div') !!}

@endsection
Run Code Online (Sandbox Code Playgroud)