Laravel 5.8 CRUD (Create Read Update Delete) Tutorial For Beginners

Laravel 5.8 CRUD (Create Read Update Delete) Tutorial For Beginners

In this post we will give you information about Laravel 5.8 CRUD (Create Read Update Delete) Tutorial For Beginners. Hear we will give you detail about Laravel 5.8 CRUD (Create Read Update Delete) Tutorial For BeginnersAnd how to use it also give you demo for it if it is necessary.

In this step, i would like to share with you step by step tutorial of crud operation with laravel 5.8 application for beginners. you will get how to create simple insert update delete operation with laravel 5.8 from scratch. here is a simple example of laravel 5.8 crud app.

You just need to follow few step and you will get basic crud stuff using controller, model, route, bootstrap 4 and blade..

As we know just few days ago, laravel introduce it’s new version of laravel 5.8. in laravel 5.8 they provide several new things that might be help you in your application. They also change directory structure for blade file.

In this tutorial, you will learn very basic crud operation with laravel new version 5.8. I am going to show you step by step from scratch so, i will better to understand if you are new in laravel.

Step 1 : Install Laravel 5.8

first of all we need to get fresh Laravel 5.8 version application using bellow command, So open your terminal OR command prompt and run bellow command:

composer create-project --prefer-dist laravel/laravel blog

Step 2: Update Database Configuration

In second step, we will make database configuration for example database name, username, password etc for our crud application of laravel 5.8. So let’s open .env file and fill all details like as bellow:

.env

DB_CONNECTION=mysql

DB_HOST=127.0.0.1

DB_PORT=3306

DB_DATABASE=here your database name(blog)

DB_USERNAME=here database username(root)

DB_PASSWORD=here database password(root)

Step 3: Create Table

we are going to create crud application for product. so we have to create migration for “products” table using Laravel 5.8 php artisan command, so first fire bellow command:

php artisan make:migration create_products_table --create=products

After this command you will find one file in following path “database/migrations” and you have to put bellow code in your migration file for create products table.

<?php

use IlluminateSupportFacadesSchema;

use IlluminateDatabaseSchemaBlueprint;

use IlluminateDatabaseMigrationsMigration;

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->timestamps();

});

}

/**

* Reverse the migrations.

*

* @return void

*/

public function down()

{

Schema::dropIfExists('products');

}

}

Now you have to run this migration by following command:

php artisan migrate

Step 4: Create Resource Route

Here, we need to add resource route for product crud application. so open your “routes/web.php” file and add following route.

routes/web.php

Route::resource('products','ProductController');

Step 5: Create Controller and Model

In this step, now we should create new controller as ProductController. So run bellow command and create new controller. bellow controller for create resource controller.

php artisan make:controller ProductController --resource --model=Product

After bellow command you will find new file in this path “app/Http/Controllers/ProductController.php”.

In this controller will create seven methods by default as bellow methods:

1)index()

2)create()

3)store()

4)show()

5)edit()

6)update()

7)destroy()

So, let’s copy bellow code and put on ProductController.php file.

app/Http/Controllers/ProductController.php

<?php

namespace AppHttpControllers;

use AppProduct;

use IlluminateHttpRequest;

class ProductController extends Controller

{

/**

* Display a listing of the resource.

*

* @return IlluminateHttpResponse

*/

public function index()

{

$products = Product::latest()->paginate(5);

return view('products.index',compact('products'))

->with('i', (request()->input('page', 1) - 1) * 5);

}

/**

* Show the form for creating a new resource.

*

* @return IlluminateHttpResponse

*/

public function create()

{

return view('products.create');

}

/**

* Store a newly created resource in storage.

*

* @param IlluminateHttpRequest $request

* @return IlluminateHttpResponse

*/

public function store(Request $request)

{

$request->validate([

'name' => 'required',

'detail' => 'required',

]);

Product::create($request->all());

return redirect()->route('products.index')

->with('success','Product created successfully.');

}

/**

* Display the specified resource.

*

* @param AppProduct $product

* @return IlluminateHttpResponse

*/

public function show(Product $product)

{

return view('products.show',compact('product'));

}

/**

* Show the form for editing the specified resource.

*

* @param AppProduct $product

* @return IlluminateHttpResponse

*/

public function edit(Product $product)

{

return view('products.edit',compact('product'));

}

/**

* Update the specified resource in storage.

*

* @param IlluminateHttpRequest $request

* @param AppProduct $product

* @return IlluminateHttpResponse

*/

public function update(Request $request, Product $product)

{

$request->validate([

'name' => 'required',

'detail' => 'required',

]);

$product->update($request->all());

return redirect()->route('products.index')

->with('success','Product updated successfully');

}

/**

* Remove the specified resource from storage.

*

* @param AppProduct $product

* @return IlluminateHttpResponse

*/

public function destroy(Product $product)

{

$product->delete();

return redirect()->route('products.index')

->with('success','Product deleted successfully');

}

}


Ok, so after run bellow command you will find “app/Product.php” and put bellow content in Product.php file:

app/Product.php

<?php

namespace App;

use IlluminateDatabaseEloquentModel;

class Product extends Model

{

protected $fillable = [

'name', 'detail'

];

}

Step 6: Create Blade Files

In last step. In this step we have to create just blade files. So mainly we have to create layout file and then create new folder “products” then create blade files of crud app. So finally you have to create following bellow blade file:

1) layout.blade.php

2) index.blade.php

3) create.blade.php

4) edit.blade.php

5) show.blade.php

So let’s just create following file and put bellow code.

resources/views/products/layout.blade.php

<!DOCTYPE html>

<html>

<head>

<title>Laravel 5.8 CRUD Application - ItSolutionStuff.com</title>

<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-alpha/css/bootstrap.css" rel="stylesheet">

</head>

<body>

<div >

@yield('content')

</div>

</body>

</html>

resources/views/products/index.blade.php

@extends('products.layout')

@section('content')

<div >

<div >

<div >

<h2>Laravel 5.8 CRUD Example from scratch - ItSolutionStuff.com</h2>

</div>

<div >

<a href="{{ route('products.create') }}"> Create New Product</a>

</div>

</div>

</div>

@if ($message = Session::get('success'))

<div >

<p>{{ $message }}</p>

</div>

@endif

<table >

<tr>

<th>No</th>

<th>Name</th>

<th>Details</th>

<th width="280px">Action</th>

</tr>

@foreach ($products as $product)

<tr>

<td>{{ ++$i }}</td>

<td>{{ $product->name }}</td>

<td>{{ $product->detail }}</td>

<td>

<form action="{{ route('products.destroy',$product->id) }}" method="POST">

<a href="{{ route('products.show',$product->id) }}">Show</a>

<a href="{{ route('products.edit',$product->id) }}">Edit</a>

@csrf

@method('DELETE')

<button type="submit" >Delete</button>

</form>

</td>

</tr>

@endforeach

</table>

{!! $products->links() !!}

@endsection

resources/views/products/create.blade.php

@extends('products.layout')

@section('content')

<div >

<div >

<div >

<h2>Add New Product</h2>

</div>

<div >

<a href="{{ route('products.index') }}"> Back</a>

</div>

</div>

</div>

@if ($errors->any())

<div >

<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('products.store') }}" method="POST">

@csrf

<div >

<div >

<div >

<strong>Name:</strong>

<input type="text" name="name" placeholder="Name">

</div>

</div>

<div >

<div >

<strong>Detail:</strong>

<textarea style="height:150px" name="detail" placeholder="Detail"></textarea>

</div>

</div>

<div >

<button type="submit" >Submit</button>

</div>

</div>

</form>

@endsection

resources/views/products/edit.blade.php

@extends('products.layout')

@section('content')

<div >

<div >

<div >

<h2>Edit Product</h2>

</div>

<div >

<a href="{{ route('products.index') }}"> Back</a>

</div>

</div>

</div>

@if ($errors->any())

<div >

<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('products.update',$product->id) }}" method="POST">

@csrf

@method('PUT')

<div >

<div >

<div >

<strong>Name:</strong>

<input type="text" name="name" value="{{ $product->name }}" placeholder="Name">

</div>

</div>

<div >

<div >

<strong>Detail:</strong>

<textarea style="height:150px" name="detail" placeholder="Detail">{{ $product->detail }}</textarea>

</div>

</div>

<div >

<button type="submit" >Submit</button>

</div>

</div>

</form>

@endsection

resources/views/products/show.blade.php

@extends('products.layout')

@section('content')

<div >

<div >

<div >

<h2> Show Product</h2>

</div>

<div >

<a href="{{ route('products.index') }}"> Back</a>

</div>

</div>

</div>

<div >

<div >

<div >

<strong>Name:</strong>

{{ $product->name }}

</div>

</div>

<div >

<div >

<strong>Details:</strong>

{{ $product->detail }}

</div>

</div>

</div>

@endsection

Now we are ready to run our crud application example with laravel 5.8 so run bellow command for quick run:

php artisan serve

Now you can open bellow URL on your browser:

Also see:Build RESTful API In Laravel 5.8 Example

http://localhost:8000/products

I hope it can help you….

Hope this code and post will helped you for implement Laravel 5.8 CRUD (Create Read Update Delete) Tutorial For Beginners. if you need any help or any feedback give it in comment section or you have good idea about this post you can give it comment section. Your comment will help us for help you more and improve us. we will give you this type of more interesting post in featured also so, For more interesting post and code Keep reading our blogs

For More Info See :: laravel And github

Leave a Comment

Your email address will not be published. Required fields are marked *

  +  22  =  24

We're accepting well-written guest posts and this is a great opportunity to collaborate : Contact US