In this tutorial you will learn about the How to Create Laravel 8 Vue JS CRUD Single Page Application (SPA) and its application with practical example.
In this How to Create Laravel 8 Vue JS CRUD Single Page Application (SPA) Tutorial, I’ll show you how to create single page crud application using Vue Js in laravel. In this tutorial you will learn to create single page crud application using Vue Js in laravel 8. In this article we will be creating a basic single page crud application with vue js in laravel 8 application.
How to Create Laravel 8 Vue JS CRUD Single Page Application (SPA)
In this step by step tutorial I’ll demonstrate with example to create single page crud application using Vue Js in laravel 8. Please follow the instruction given below:
- Create a Laravel Project
- Enable database connection
- Create a model and run migration
- Create and configure the controller
- Add routes
- Install Laravel Vue UI
- Install NPM dependencies
- Build Vue Js CRUD Components
- Test Laravel Vue JS CRUD operations
Install Laravel App
First of all we need to create a fresh laravel project, download and install Laravel 8 using the below command
1 |
composer create-project laravel/laravel laravel-vue-crud --prefer-dist |
Database Connection
Now, lets create a MySQL database and connect it with laravel application. After creating database we need to set database credential in application’s .env file.
1 2 3 4 5 6 |
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=db DB_USERNAME=root DB_PASSWORD= |
Set Up Model and Run Migration
Now, in this step we will create model and migration file. Please run the following command:
1 |
php artisan make:model Product -m |
Add following code in database/migrations/create_products_table.php:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; class CreateProductsTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('products', function (Blueprint $table) { $table->id(); $table->string('name'); $table->text('detail'); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('products'); } } |
Define Product table values in app/Models/Product.php:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Product extends Model { use HasFactory; protected $fillable = [ 'name', 'detail' ]; } |
Now, run the migration to create database table using following artisan command: