Hello to all, welcome to therichpost.com. In this post, I will share with you, Vue Laravel Chart js with Dynamic Data.
I have shared many post related to Vue laravel and this is also for same topic.
In this post, I will show laravel dynamic data into chart js bar chart added in vuejs component.
Here is the working picture:
Here is the working coding steps need to follow, please do steps wise if you want good results:
1. Here are the basics command to install fresh laravel setup on your machine:
$ composer create-project --prefer-dist laravel/laravel blogvuechartjs //install frest laravel setup $ cd blogvuechartjs // go inside laravel setup
2. Here are the important commands, you need to run into your terminal to install chart js:
$ npm install //install node modules $ npm install vue-chartjs chart.js --save //install chartjs package
3. After run above commands, now we will move coding area and I must tell you, laravel gives us default vue setup and this is the best thing and here you can find vue setup inside laravel:
4. Now, here is the below code, you need to add into your resources\js\components\ExampleComponent.vue file:
<template> <div class="container"> <center><h1>Vue laravel Chartjs</h1></center> <canvas ref="chart"></canvas> </div> </template> <script> export default{ mounted() { let uri = 'http://localhost:8000/chartjs'; axios.get(uri).then((response) => { var chart = this.$refs.chart; var ctx = chart.getContext("2d"); var myChart = new Chart(ctx, { type: 'bar', data: { labels: response.data.month, datasets: [{ label: '# of Votes', data: response.data.data, borderWidth: 1 }] }, options: { scales: { yAxes: [{ ticks: { beginAtZero: true } }] } } }); }).catch(error => { console.log(error) this.errored = true }); } } </script>
5. Now, here is the below code, you need to add into resources\js\app.js file:
require('./bootstrap'); window.Vue = require('vue'); import axios from 'axios'; Vue.use(axios); import {Bar} from 'vue-chartjs'; Vue.component('example-component', require('./components/ExampleComponent.vue')); const app = new Vue({ el: '#app' });
6. Now, here is the below code, you need to add app\Http\Controllers\Controller.php file:
.... public function Chartjs(){ $month = array('Jan', 'Feb', 'Mar', 'Apr', 'May'); $data = array(1, 2, 3, 4, 5); return response()->json(['month' => $month, 'data' => $data]); } ....
7. Now. here is the code, you need to add routes\web.php file:
Route::get("/chartjs", "Controller@Chartjs");
8. Now here is the code, you need to add into your resources\views\welcome.blade.php file:
<div id="app"><example-component></example-component></div> <script src="{{asset('js/app.js')}}"></script>
Now you are done and if you have any query related to this post, then do comment below or ask question.
Thank you,
Jatt,
TheRichPost
Note: Every Post has been made by heart.
ludhiane wala ajay