Watch Youtube Video (HINDI) :
Laravel 6 has been released a few days ago. Laravel provides some new features with LTS support.
If you are new to Laravel 6 then this post is for you. In this post, I will tell you what is the procedure for Create, Read, Update, Delete (CRUD) operation with easy steps.
I am going to show you step by step from scratch.

Step 1 : Download Laravel 6
Here we need to fresh laravel 6 application download. So open your terminal and run below command.
composer create-project --prefer-dist laravel/laravel blog
Step 2 : .env configuration
In this step , we will set database configuration for example database name,username,password etc for our crud application laravel 6. So now open your .env file and fill all details like as bellow.
.env
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=Your Database Name DB_USERNAME=Your Database Username DB_PASSWORD=Your Database Password
Step 3 : Make Migration Table
Now in this step we need to create one product table. so we have to create migration for product table using laravel 6 php artisan command. so now we follow this command.
php artisan make:migration create_product_table
After created successfully migration file. find migration file in database/migrations directory and put below code in your migration file for create product table.
2019_10_10_091814_create_product_table.php
<?php use Illuminate\Support\Facades\Schema; use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Migrations\Migration; class CreateProductsTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('products', function (Blueprint $table) { $table->increments('id'); $table->string('name'); $table->text('detail'); $table->text('price'); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('products'); } }
Now we have to migrate this file using below command.
php artisan migrate
Step 4 : Create Route
In this step we need to make route in our laravel 6 crud application. So now open your routes/web.php and put bellow code.
Route::resource('product','ProductController');
Laravel 6 validation with error message
Step 5 : Create Controller and model
In fifth step we have to create a ProductController with Product model and resource. using this command.
php artisan make:controller ProductController --resource --model=Product
Now we find product controller on this path app/Http/Controllers/ProductController.php
Route resource by default provides 7 method like this.
(1) index()
(2) create()
(3) store()
(4) show()
(5) edit()
(6) update()
(7) destroy()
So now we will copy below code and put on ProductController.php file.
app/Http/Controllers/ProductController.php
<?php namespace App\Http\Controllers; use App\Product; use Illuminate\Http\Request; class ProductController extends Controller{ /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { $products = Product::latest()->paginate(5); return view('product.index',compact('products')) ->with('i', (request()->input('page', 1) - 1) * 5); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { return view('product.create'); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { $request->validate([ 'name' => 'required', 'detail' => 'required', 'price' => 'required', ]); Product::create($request->all()); return redirect()->route('products.index') ->with('success','Product created successfully.'); } /** * Display the specified resource. * * @param \App\Product $product * @return \Illuminate\Http\Response */ public function show(Product $product) { return view('product.show',compact('product')); } /** * Show the form for editing the specified resource. * * @param \App\Product $product * @return \Illuminate\Http\Response */ public function edit(Product $product) { return view('product.edit',compact('product')); } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param \App\Product $product * @return \Illuminate\Http\Response */ public function update(Request $request, Product $product) { $request->validate([ 'name' => 'required', 'detail' => 'required', 'price' => 'required', ]); $product->update($request->all()); return redirect()->route('product.index') ->with('success','Product updated successfully'); } /** * Remove the specified resource from storage. * * @param \App\Product $product * @return \Illuminate\Http\Response */ public function destroy(Product $product) { $product->delete(); return redirect()->route('product.index') ->with('success','Product delete successfully'); } }
Now we copy that app/Product.php file and paste it.
app/Product.php
<?php namespace App; use Illuminate\Database\Eloquent\Model; class Product extends Model { protected $fillable = [ 'name', 'detail','price' ]; }
Laravel 6 call function undefined str_slug() - fix
Step 6 : Add Blade Files
In this step we have to create some blade files into product folder. So now we mainly create layout files and then create new blade files of CRUD application. So now the last step we have to create the following bellow blade file.
(1) layout.blade.php
(2) index.blade.php
(3) create.blade.php
(4) edit.blade.php
(5) show.blade.php
After creating a blade file now we have to copy the below files code and put it into the blade file.
resources/views/product/layout.blade.php
<!DOCTYPE html> <html> <head> <title>Laravel 6 CRUD Application - webappfix.com</title> <link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-alpha/css/bootstrap.css" rel="stylesheet"> </head> <body> <div class="container"> @yield('content') </div> </body> </html>
resources/views/product/index.blade.php
@extends('product.layout') @section('content') <div class="row"> <div class="col-lg-12 margin-tb"> <div class="pull-left"> <h2>Laravel 6 CRUD Example - webappfix.com</h2> </div> <div class="pull-right"> <a class="btn btn-success" href="{{ route('product.create') }}"> Create New Product</a> </div> </div> </div> @if ($message = Session::get('success')) <div class="alert alert-success"> <p>{{ $message }}</p> </div> @endif <table class="table table-bordered"> <tr> <th>No</th> <th>Name</th> <th>Details</th> <th>Price</th> <th width="280px">Action</th> </tr> @foreach ($products as $product) <tr> <td>{{ ++$i }}</td> <td>{{ $product->name }}</td> <td>{{ $product->detail }}</td> <td>{{ $product->price }}</td> <td> <form action="{{ route('product.destroy',$product->id) }}" method="POST"> @csrf <a class="btn btn-info" href="{{ route('product.show',$product->id) }}">Show</a> <a class="btn btn-primary" href="{{ route('product.edit',$product->id) }}">Edit</a> @method('DELETE') <button type="submit" class="btn btn-danger">Delete</button> </form> </td> </tr> @endforeach </table> {!! $products->links() !!} @endsection
resources/views/product/create.blade.php
@extends('product.layout') @section('content') <div class="row"> <div class="col-lg-12 margin-tb"> <div class="pull-left"> <h2>Add New Product</h2> </div> <div class="pull-right"> <a class="btn btn-primary" href="{{ route('product.index') }}"> Back</a> </div> </div> </div> @if ($errors->any()) <div class="alert alert-danger"> <strong>Whoops!</strong> There were some problems with your input.<br><br> <ul> @foreach ($errors->all() as $error) <li>{{ $error }}</li> @endforeach </ul> </div> @endif <form action="{{ route('product.store') }}" method="POST"> @csrf <div class="row"> <div class="col-xs-12 col-sm-12 col-md-12"> <div class="form-group"> <strong>Name:</strong> <input type="text" name="name" class="form-control" placeholder="Name"> </div> </div> <div class="col-xs-12 col-sm-12 col-md-12"> <div class="form-group"> <strong>Price:</strong> <input type="text" name="price" class="form-control" placeholder="Price"> </div> </div> <div class="col-xs-12 col-sm-12 col-md-12"> <div class="form-group"> <strong>Detail:</strong> <textarea class="form-control" style="height:150px" name="detail" placeholder="Detail"></textarea> </div> </div> <div class="col-xs-12 col-sm-12 col-md-12 text-center"> <button type="submit" class="btn btn-primary">Submit</button> </div> </div> </form> @endsection
resources/views/product/edit.blade.php
@extends('product.layout') @section('content') <div class="row"> <div class="col-lg-12 margin-tb"> <div class="pull-left"> <h2>Edit Product</h2> </div> <div class="pull-right"> <a class="btn btn-primary" href="{{ route('product.index') }}"> Back</a> </div> </div> </div> @if ($errors->any()) <div class="alert alert-danger"> <strong>Whoops!</strong> There were some problems with your input.<br><br> <ul> @foreach ($errors->all() as $error) <li>{{ $error }}</li> @endforeach </ul> </div> @endif <form action="{{ route('product.update',$product->id) }}" method="POST"> @csrf @method('PUT') <div class="row"> <div class="col-xs-12 col-sm-12 col-md-12"> <div class="form-group"> <strong>Name:</strong> <input type="text" name="name" value="{{ $product->name }}" class="form-control" placeholder="Name"> </div> </div> <div class="col-xs-12 col-sm-12 col-md-12"> <div class="form-group"> <strong>Price:</strong> <input type="text" name="name" value="{{ $product->price }}" class="form-control" placeholder="Price"> </div> </div> <div class="col-xs-12 col-sm-12 col-md-12"> <div class="form-group"> <strong>Detail:</strong> <textarea class="form-control" style="height:150px" name="detail" placeholder="Detail">{{ $product->detail }}</textarea> </div> </div> <div class="col-xs-12 col-sm-12 col-md-12 text-center"> <button type="submit" class="btn btn-primary">Submit</button> </div> </div> </form> @endsection
resources/views/product/show.blade.php
@extends('product.layout') @section('content') <div class="row"> <div class="col-lg-12 margin-tb"> <div class="pull-left"> <h2> Show Product</h2> </div> <div class="pull-right"> <a class="btn btn-primary" href="{{ route('product.index') }}"> Back</a> </div> </div> </div> <div class="row"> <div class="col-xs-12 col-sm-12 col-md-12"> <div class="form-group"> <strong>Name:</strong> {{ $product->name }} </div> </div> <div class="col-xs-12 col-sm-12 col-md-12"> <div class="form-group"> <strong>Price:</strong> {{ $product->price }} </div> </div> <div class="col-xs-12 col-sm-12 col-md-12"> <div class="form-group"> <strong>Details:</strong> {{ $product->detail }} </div> </div> </div> @endsection
Your laravel 6 crud application ready to run now we follow below command to run.
php artisan serve
Finally run your laravel 6 crud application completly run.
Now you can open bellow url on your web browser.
http://localhost:8000/product
We always thanks to you for reading our blogs.

Dharmesh Chauhan
(Swapinfoway Founder)Hello Sir, We are brothers origin from Gujarat India, Fullstack developers working together since 2016. We have lots of skills in web development in different technologies here I mention PHP, Laravel, Javascript, Vuejs, Ajax, API, Payment Gateway Integration, Database, HTML5, CSS3, and Server Administration. So you need our service Please Contact Us

Haresh Chauhan
(Co-Founder)We Are Also Recommending You :
- Everything know about Laravel Localization With Demo Example
- MongoDB Database Connection In Laravel
- Laravel 10 Forum Integration Tutorial Example
- Bootstrap 5 Modal Not Working Blade File Laravel
- How To Add Google reCAPTCHA v2 In HTML Form Based PHP/Laravel Website
- Laravel 56 Login and Logout
- Laravel 9 CRUD Operation From Scratch Step By Step Guideline
- Laravel Routing Multiple Method Use In Single Route
- Laravel Upgrading To 10.0 From 9.x Version
- How To Configuration Laravel Supervisor