2015-12-16 2 views
3

Я выполнил руководство https://github.com/kevinkhill/lavacharts, чтобы отобразить диаграмму в моем приложении на основе Laravel 5.1. Но не удалось сделать это. Это дает мне ошибку LineChart ('Stocks') не найден на View. Ниже мой код контроллера & посмотреть код. Какие изменения необходимы для устранения этой проблемы?Невозможно визуализировать LineChart в Laravel 5.1, созданном с использованием Lavacharts

ChartController.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'); 

} 

analytics.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 

ответ

4

1) Это указано в documentation, что если вы используете Laravel, вам необходимо изменить

$lava-> to \Lava:: (the slash is important) 

2) Фактически эта строка кода:

echo $lava->render('LineChart', 'Stocks', 'stock-div'); 

эквивалентна этой линии:

@linechart('Stocks', 'stocks-div'); 

Так у вас есть повторяющийся код здесь (просто удалить одну строку).

У вас есть 3 варианта, чтобы положить на ваш взгляд:

Вы можете использовать PHP тег:

<?php echo \Lava::render('LineChart', 'Stocks', 'stock-div'); ?> 

или вы можете использовать это:

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

или это упрощенная версия

@linechart('Stocks', 'stocks-div'); 

So lution:

ChartController.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'); 

} 

analytics.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 
+0

Что делать в Laravel 4.2? – Vagabond

1

ЗДЕСЬ код для LAVACHARTS 3.0 и 5.2 Laravel

контроллер

$stocksTable = \Lava::DataTable(); 
    $stocksTable->addDateColumn('Day of Month') 
     ->addNumberColumn('Projected') 
     ->addNumberColumn('Official'); 

    // Random Data For Example 
    for ($a = 1; $a < 30; $a++) { 
     $stocksTable->addRow(["2014-8-$a", rand(800, 1000), rand(800, 1000)]); 
    } 

    //DON'T pass $Chart object to view, you get it via its label 
    //options here: http://lavacharts.com/#datatables 
    $Chart = \Lava::LineChart('this_is_the_label', $stocksTable, [ 
     'title' => 'This works in laravel 5.2', 
     'fontSize' => 24, 
    ]); 

Посмотреть

<div id="stock-div"></div> 
{!! \Lava::render('LineChart', 'this_is_the_label', 'stock-div') !!} 
Смежные вопросы