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)
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)