In this article, we will guide you step by step on how to create laravel 8 Vue js Axios post a request example(Laravel 8 Vue JS Axios Post Request Example Tutorial). we will learn how to send an HTTP request using Axios in Vue js. we will send data using the Vue js Axios to post a request.
The Axios is an HTTP client library. It allows you to send get, post, put, delete requests with a parameter, Formdata, headers, string, image, multipart / form-data, etc. The Axios library is an amazing library for HTTP requests.
In this example, we will give you a simple example of Vue JS Axios PostbRequest. so you can see the following steps.
Overview
Step 1: Install Laravel 8
Step 2: Setting Database Configuration
Step 3: Create Routes
Step 4: Create Controller
Step 5: Install Vue Js dependency
Step 6: Create Component and update app.js
Step 7: Update Blade Files
Step 8: Run Our Laravel Application
Step 1: Install Laravel 8
We are going to install laravel 8, so first open the command prompt or terminal and go to xampp htdocs folder directory using the command prompt. after then run the below command for laravel 8 install.
composer create-project --prefer-dist laravel/laravel laravel8_vue
Step 2: Setting Database Configuration
After the complete installation of laravel. we have to database configuration. now we will open the .env file and change the database name, username, password in the .env file. See below changes in a .env file.
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=Enter_Your_Database_Name(laravel8_vue) DB_USERNAME=Enter_Your_Database_Username(root) DB_PASSWORD=Enter_Your_Database_Password(root)
Step 3: Create Routes
Add the following route code in the “routes/web.php” file.
use App\Http\Controllers\UserController; Route::get('/user', 'UserController@index')->name('user'); Route::post('/user', 'UserController@create');
Step 4: Create Controller
Here below command help to create the controller and model.
php artisan make:controller UserController
UserController.php
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Symfony\Component\HttpFoundation\Response; use App\Models\User; use Illuminate\Support\Facades\Hash; class UserController extends Controller { /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { return view('welcome'); } public function create(Request $request) { $user = new User; $user->name = $request->name; $user->email = $request->email; $user->password = Hash::make($request->password); $user->save(); return response()->json([ 'message' => 'New User created' ]); } } ?>
Step 5: Install Vue Js dependency
in this step, go to the project directory using the command prompt. after then run the below command for Install Vue Js dependency.
npm install
Step 6: Create Component and update app.js
resources/js/components/UserComponent.vue
<template> <div class="container"> <div class="row justify-content-center"> <div class="col-md-8"> <div class="card"> <div class="card-header">Create new User</div> <div class="card-body"> <p id="success"></p> <form @submit.prevent="addUser"> <input type="text" name="name" v-model="name" /> <input type="email" name="email" v-model="email" /> <input type="password" name="password" v-model="password" /> <input type="submit" value="Submit"> </form> </div> </div> </div> </div> </div> </template> <script> export default { data(){ return { name: '', email: '', password: '' } }, methods: { addUser(){ axios.post('/user',{name: this.name, email:email,password:this.password}) .then((response)=>{ $('#success').html(response.data.message) }) } } } </script>
resources/js/app.js
require('./bootstrap'); window.Vue = require('vue'); Vue.component('user-component', require('./components/UserComponent.vue').default); const app = new Vue({ el: '#app', });
Step 7: Update Blade Files
So finally, first we need to create the app.blade.php file in the “resources/views/layouts/” and Update the welcome.blade.php file in the “resources/views/” directory. so you can see the below code.
resources/views/layouts/app.blade.php
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="csrf-token" content="{{ csrf_token() }}"> <title>{{ config('app.name', 'Laravel') }}</title> <link href="{{ mix('css/app.css') }}" rel="stylesheet"> <title>User</title> </head> <body> <div id="app"> <div class="py-4"> @yield('content') </div> </div> <script src="{{ mix('js/app.js') }}" defer></script> </body> </html>
welcome.blade.php
@extends('layouts.app') @section('content') <user-component></user-component> @endsection
Step 8: Run Our Laravel Application
We can start the server and run this example using the below command.
npm run dev //or npm run watch
Now we will run our example using the below Url in the browser.
http://127.0.0.1:8000/user