Thứ Ba, 25 tháng 10, 2016

laravel 5 : Google Charts, Simple Geo Chart using Lavacharts in Laravel 5.3


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.
Simple Geo Chart using Lavacharts in Laravel 5.3

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 routes
Route::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