Laravel 5.3 Tutorial - Lavacharts is a wrapper for Google's powerful Javascript Chart API,
More detail https://github.com/kevinkhill/lavacharts or http://lavacharts.com/.
How to create simple Geo Chart using Lavacharts in Laravel 5.3?
First, you must have a database, i'm using MySQL database, just create "lavachart" database using MySQL.
Create Simple Geo Chart Project
cd c:\server\htdocs
....
composer create-project --prefer-dist laravel/laravel lavacharts
Create Connection to Database
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=lavacharts
DB_USERNAME=root
DB_PASSWORD=yourpassword
Create Table and Migrations
php artisan make:migration create_table_charts_table
in Migration files, add this function to create charts table
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateChartsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('charts', function (Blueprint $table) {
$table->increments('id');
$table->string('country');
$table->integer('users');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('charts');
}
}
Create Models
php artisan make:model Charts
Add this function to "Charts" model
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Charts extends Model
{
protected $table ='charts';
public $fillable = ['country','users'];
}
Next, we will add Lavacharts into project,
Installing Lavacharts
First, copy this line into your project's composer.json file, in the "require": {} section,
"khill/lavacharts" : "3.0.*"
Next, run composer to download and install.
composer update
Register the service provider
Register the service provider by adding this line to the providers array in config/app.php
Khill\Lavacharts\Laravel\LavachartsServiceProvider::class,
Create Controller
Create new controller following this command :
php artisan make:controller ChartsController
Next, add this function into our controller (ChartsController.php)
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Charts;
use Khill\Lavacharts\Lavacharts;
class ChartsController extends Controller
{
public function chart(){
$lava = new Lavacharts;
$popularity = $lava->DataTable();
$data=Charts::select("country as 0","users as 1")->get()->toArray();
$popularity->addStringColumn('Country')
->addNumberColumn('Users')
->addRows($data);
$lava->GeoChart('Popularity',$popularity);
return view('charts.chart',['lava' => $lava]);
}
}
Routes
create new routesRoute::get('charts/chart', 'ChartsController@chart');
Create Views
First, we will create new folder named with "charts" under resources folders, resources\views\charts.
Next, create new file (chart.blade.php) under charts folder resources\views\charts\chart.blade.php
Chart.blade.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Simple Geo Map - Chart Map</title>
<!-- Bootstrap -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css">
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.2/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<div class="container">
<div class="row">
<div class="col-md-12">
<h1>Geo Map using LavaCharts</h1>
<div id="pop-div" style="width:800px;border:1px solid orange"></div>
<?= $lava->render('GeoChart', 'Popularity', 'pop-div') ?>
</div>
</div>
</div>
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<!-- Include all compiled plugins (below), or include individual files as needed -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
</body>
</html>
Try and Error
Finally, try to open your project using Google Chrome Browser :
http://localhost:8080/charts/chart
[UPDATE] VIDEO TUTORIAL USING GOOGLE CHARTS FULL CUSTOMIZE
Video tutorial Simple Geo Chart using Lavacharts in Laravel 5.3
Download full source code Google Charts, Simple Geo Chart using Lavacharts in Laravel 5.3 >> https://goo.gl/NzoiDL
See you next lessons..
Không có nhận xét nào:
Đăng nhận xét