Installing composer
The composer is a package management tool for PHP. Laravel requires composer for installation. We can download composer from
After the installation that you can test whether the composer installed or not by command
composer
Installing Laravel
Current stable version of laravel is laravel 5.6 .We can install laravel package with three ways. In command prompt or terminal
1
. composer global require "laravel/installer"
and then
. composer global require "laravel/installer"
and then
Laravel new <project_name>
or
via composer we can create project
composer create-project --prefer-dist laravel/laravel <project_name>
or
Directly clone from github
https://github.com/laravel/laravel/tree/master and after that composer update
Laravel local development server
Run the below command in command prompt or terminal
PHP artisan serve
Above command will start to local development serve
http://localhost:8000 or if you want to change default port
php artisan serve --port <port_number>
Generating charts and graphs
We are using consoletvs package for generating charts. So for installation we can first move inside to our project using command prompt or terminal. We are following the below steps to install
Step 1:
First we need to install ConsoleTVs/Charts composer package inside our laravel project.
composer require consoletvs/charts
Step 2:
After successfully installation of above package, open app/config.php and add service provider.
In config/app.php
'providers' => [
....
ConsoleTVs\Charts\ChartsServiceProvider::class,
],
After the service provider we need to add alias
'aliases' => [
....
'Charts' => ConsoleTVs\Charts\Facades\Charts::class,
]
Step 3
We need to configure of database for application. We can configure in either .env file or config/database.php file.
Step 4
We can migrate our default tables that is user. We can find the table in database/migration folder.
Step 5
We can generate dummy records for demo in users table. For creating dummy records, we need to run the below command in command prompt or terminal
php artisan tinker>>> factory(App\User::class, 20)->create();
the above command will create a set of 20 records. If we need to add more records we need to run the above command or we can increase the count as much as we want. For example
php artisan tinker>>> factory(App\User::class, 2000)->create();
Step 6
Creating controller
For creating controller we need to run below command in terminal or command prompt
Php artisan make controller:<controller_name>
Step 7
Adding the routes
We can add the routes for navigating our application. You can find routes file inside routes folder. Before 5.4 we can find routes.php file itself, now its web.php. If you are using laravel 5.2 routes.php will inside app/http folder.
So inside web.php
Route::get('create-chart/{type}','ChartController@makeChart');
Here type will be the parameter we are passing and it will focus to makeChart() function inside chartcontroller
Step 8
Import charts to controller, for that in the namespace section add
Use charts;
Step 9
We can put the below code into chartController
public function makeChart($type)
{
switch ($type) {
case 'bar':
$users = User::where(DB::raw("(DATE_FORMAT(created_at,'%Y'))"),date('Y'))
->get();
$chart = Charts::database($users, 'bar', 'highcharts')
->title("Monthly new Register Users")
->elementLabel("Total Users")
->dimensions(1000, 500)
->responsive(true)
->groupByMonth(date('Y'), true);
break;
case 'pie':
$chart = Charts::create('pie', 'highcharts')
->title('HDTuto.com Laravel Pie Chart')
->labels(['Codeigniter', 'Laravel', 'PHP'])
->values([5,10,20])
->dimensions(1000,500)
->responsive(true);
break;
case 'donut':
$chart = Charts::create('donut', 'highcharts')
->title('HDTuto.com Laravel Donut Chart')
->labels(['First', 'Second', 'Third'])
->values([5,10,20])
->dimensions(1000,500)
->responsive(true);
break;
case 'line':
$chart = Charts::create('line', 'highcharts')
->title('HDTuto.com Laravel Line Chart')
->elementLabel('HDTuto.com Laravel Line Chart Lable')
->labels(['First', 'Second', 'Third'])
->values([5,10,20])
->dimensions(1000,500)
->responsive(true);
break;
case 'area':
$chart = Charts::create('area', 'highcharts')
->title('HDTuto.com Laravel Area Chart')
->elementLabel('HDTuto.com Laravel Line Chart label')
->labels(['First', 'Second', 'Third'])
->values([5,10,20])
->dimensions(1000,500)
->responsive(true);
break;
case 'geo':
$chart = Charts::create('geo', 'highcharts')
->title('HDTuto.com Laravel GEO Chart')
->elementLabel('HDTuto.com Laravel GEO Chart label')
->labels(['ES', 'FR', 'RU'])
->colors(['#3D3D3D', '#985689'])
->values([5,10,20])
->dimensions(1000,500)
->responsive(true);
break;
default:
# code...
break;
}
return view('chart', compact('chart'));
}
Step 10
Create a blade file. Blade is the view file used inside the laravel. You can add new blade file with any name with an extension of .blade.php
Here we are creating 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>My Charts</title>
{!! Charts::styles() !!}
</head>
<body>
<!-- Main Application (Can be VueJS or other JS framework) -->
<div class="app">
<center>
{!! $chart->html() !!}
</center>
</div>
<!-- End Of Main Application -->
{!! Charts::scripts() !!}
{!! $chart->script() !!}
</body>
</html>
Step 11
We can run our laravel application in local development server by php artisan serve command
http://localhost:8000/create-chart/bar
http://localhost:8000/create-chart/pie
http://localhost:8000/create-chart/donut
http://localhost:8000/create-chart/line
http://localhost:8000/create-chart/area
http://localhost:8000/create-chart/geo
In the above example we was creating line chart, geo chart, bar chart, pie chart, donut chart, line chart and area chart. We can also create gauge chart, progressbar chart, areaspline chart, scatter chart, percentage chart etc using consoletvs charts composer package.There are a lot of jquery libraries also available like amcharts, chartjs, highcharts, google, material, chartist, fusioncharts, morris, plottablejs etc. Using this plugin we can easily create charts. We don’t require any jquery to run this plugin, this the main advantage of this plugin
Comments
Post a Comment