Laravel 10 CRUD Example Tutorial for Beginners

Laravel 10 CRUD Example Tutorial for Beginners

In this post, we will give you information about Laravel 10 CRUD Example Tutorial for Beginners. Here we will give you detail about Laravel 10 CRUD Example Tutorial for Beginners And how to use it also give you a demo for it if it is necessary.

Throughout this Laravel 10 CRUD operation with an example for beginners tutorial, you will learn a step-by-step guide on how to build a simple crud operation app in laravel 10 and how to validate with store & update form data to the database in laravel crud app with bootstrap.

CRUD Meaning: CRUD is an acronym that comes from the world of computer programming and refers to the four functions that are considered necessary to implement a persistent storage application: create, read, update and delete.

This laravel 10 crud operation step-by-step tutorial from scratch will implement a simple post crud operation app in laravel app with validation and image upload. Using this crud app, you can learn how to insert, read, update, and delete data from the database in laravel 10 projects.

Laravel 10 CRUD Example Tutorial for Beginners

Use the following steps to create a crud operation app in laravel 10 as follows:

  • Step 1 – Download Laravel 10 App
  • Step 2 – Setup Database with App
  • Step 3 – Create Company Model & Migration For CRUD App
  • Step 4 – Create Company Controller By Artisan Command
  • Step 5 – Create Routes
  • Step 6 – Create Blade Views File
    • Make Directory Name Companies
    • index.blade.php
    • create.blade.php
    • edit.blade.php
  • Step 7 – Run Laravel CRUD App on Development Server

Step 1 – Download Laravel 10 App for Laravel 10 CRUD Example Tutorial for Beginners

First of all, download or install laravel 10 new setup. So, open the terminal and type the following command to install the new laravel 10 app into your machine:

composer create-project --prefer-dist laravel/laravel:^10.0 laravel-10-crud

Step 2 – Setup Database with App

Setup database with your downloaded/installed laravel app. So, you need to find the .env file and setup database details as follows:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=database-name
DB_USERNAME=database-user-name
DB_PASSWORD=database-password

Step 3 – Create Company Model & Migration For CRUD App

Open again your command prompt. And run the following command on it. To create model and migration file for form:

php artisan make:model Company -m

After that, open company migration  file inside laravel-10-crud/database/migrations/ directory. And then update the function up() with the following code:

public function up()
{
    Schema::create('companies', function (Blueprint $table) {
        $table->id();
        $table->string('name');
        $table->string('email');
        $table->string('address');
        $table->timestamps();
    });
}

app/Models/Company.php

<?php

namespace AppModels;

use IlluminateDatabaseEloquentFactoriesHasFactory;
use IlluminateDatabaseEloquentModel;

class Company extends Model
{
    use HasFactory;

    protected $fillable = ['name', 'email', 'address'];
}

Then, open again command prompt and run the following command to create tables in the database:

php artisan migrate

Step 4 – Create Company Controller By Artisan Command

Create a controller by using the following command on the command prompt to create a controller file:

php artisan make:controller CompanyController

After that, visit app/Http/controllers and open the CompanyController.php file. And update the following code into it:

<?php

namespace AppHttpControllers;
use AppModelsCompany;
use IlluminateHttpRequest;

class CompanyController extends Controller
{
    /**
    * Display a listing of the resource.
    * Laravel 10 CRUD Example Tutorial for Beginners
    * @return IlluminateHttpResponse
    */
    public function index()
    {
        $companies = Company::orderBy('id','desc')->paginate(5);
        return view('companies.index', compact('companies'));
    }

    /**
    * Show the form for creating a new resource.
    *
    * @return IlluminateHttpResponse
    */
    public function create()
    {
        return view('companies.create');
    }

    /**
    * Store a newly created resource in storage.
    *
    * @param  IlluminateHttpRequest  $request
    * @return IlluminateHttpResponse
    */
    public function store(Request $request)
    {
        $request->validate([
            'name' => 'required',
            'email' => 'required',
            'address' => 'required',
        ]);
        
        Company::create($request->post());

        return redirect()->route('companies.index')->with('success','Company has been created successfully.');
    }

    /**
    * Display the specified resource.
    *
    * @param  Appcompany  $company
    * @return IlluminateHttpResponse
    */
    public function show(Company $company)
    {
        return view('companies.show',compact('company'));
    }

    /**
    * Show the form for editing the specified resource.
    *
    * @param  AppCompany  $company
    * @return IlluminateHttpResponse
    */
    public function edit(Company $company)
    {
        return view('companies.edit',compact('company'));
    }

    /**
    * Update the specified resource in storage.
    *
    * @param  IlluminateHttpRequest  $request
    * @param  Appcompany  $company
    * @return IlluminateHttpResponse
    */
    public function update(Request $request, Company $company)
    {
        $request->validate([
            'name' => 'required',
            'email' => 'required',
            'address' => 'required',
        ]);
        
        $company->fill($request->post())->save();

        return redirect()->route('companies.index')->with('success','Company Has Been updated successfully');
    }

    /**
    * Remove the specified resource from storage.
    *
    * @param  AppCompany  $company
    * @return IlluminateHttpResponse
    */
    public function destroy(Company $company)
    {
        $company->delete();
        return redirect()->route('companies.index')->with('success','Company has been deleted successfully');
    }
}

 

Step 5 – Create Routes

Then create routes for laravel crud app. So, open the web.php file from the routes directory of laravel CRUD app. And update the following routes into the web.php file:

use AppHttpControllersCompanyController;
 
Route::resource('companies', CompanyController::class);

Step 6 – Create Blade Views File

Create the directory and some blade view, see the following:

  • Make Directory Name Companies
  • index.blade.php
  • create.blade.php
  • edit.blade.php

Create directory name companies inside the resources/views directory.

Note that, create index.blade.php, create.blade.php, and edit.blade.php inside the companies directory. And update the following code into the following files:

index.blade.php:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Laravel 10 CRUD Example Tutorial for Beginners</title>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" >
</head>
<body>
    <div >
        <div >
            <div >
                <div >
                    <h3>Laravel 10 CRUD Example Tutorial</h3>
                </div>
                <div >
                    <a  href="{{ route('companies.create') }}"> Create Company</a>
                </div>
            </div>
        </div>
        @if ($message = Session::get('success'))
            <div >
                <p>{{ $message }}</p>
            </div>
        @endif
        <table >
            <thead>
                <tr>
                    <th>S.No</th>
                    <th>Company Name</th>
                    <th>Company Email</th>
                    <th>Company Address</th>
                    <th width="280px">Action</th>
                </tr>
            </thead>
            <tbody>
                @foreach ($companies as $company)
                    <tr>
                        <td>{{ $company->id }}</td>
                        <td>{{ $company->name }}</td>
                        <td>{{ $company->email }}</td>
                        <td>{{ $company->address }}</td>
                        <td>
                            <form action="{{ route('companies.destroy',$company->id) }}" method="Post">
                                <a  href="{{ route('companies.edit',$company->id) }}">Edit</a>
                                @csrf
                                @method('DELETE')
                                <button type="submit" >Delete</button>
                            </form>
                        </td>
                    </tr>
                    @endforeach
            </tbody>
        </table>
        {!! $companies->links() !!}
    </div>
</body>
</html>

create.blade.php:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Add Company Form - Laravel 10 CRUD Example Tutorial for Beginners</title>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
</head>

<body>
    <div >
        <div >
            <div >
                <div >
                    <h3>Add Company</h3>
                </div>
                <div >
                    <a  href="{{ route('companies.index') }}"> Back</a>
                </div>
            </div>
        </div>
        @if(session('status'))
        <div >
            {{ session('status') }}
        </div>
        @endif
        <form action="{{ route('companies.store') }}" method="POST" enctype="multipart/form-data">
            @csrf
            <div >
                <div >
                    <div >
                        <strong>Company Name:</strong>
                        <input type="text" name="name"  placeholder="Company Name">
                        @error('name')
                        <div >{{ $message }}</div>
                        @enderror
                    </div>
                </div>
                <div >
                    <div >
                        <strong>Company Email:</strong>
                        <input type="email" name="email"  placeholder="Company Email">
                        @error('email')
                        <div >{{ $message }}</div>
                        @enderror
                    </div>
                </div>
                <div >
                    <div >
                        <strong>Company Address:</strong>
                        <input type="text" name="address"  placeholder="Company Address">
                        @error('address')
                        <div >{{ $message }}</div>
                        @enderror
                    </div>
                </div>
                <button type="submit" >Submit</button>
            </div>
        </form>
    </div>
</body>

</html>

edit.blade.php:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Edit Company Form - Laravel 10 CRUD Example Tutorial for Beginners</title>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
</head>

<body>
    <div >
        <div >
            <div >
                <div >
                    <h3>Edit Company</h3>
                </div>
                <div >
                    <a  href="{{ route('companies.index') }}" enctype="multipart/form-data">
                        Back</a>
                </div>
            </div>
        </div>
        @if(session('status'))
        <div >
            {{ session('status') }}
        </div>
        @endif
        <form action="{{ route('companies.update',$company->id) }}" method="POST" enctype="multipart/form-data">
            @csrf
            @method('PUT')
            <div >
                <div >
                    <div >
                        <strong>Company Name:</strong>
                        <input type="text" name="name" value="{{ $company->name }}" 
                            placeholder="Company name">
                        @error('name')
                        <div >{{ $message }}</div>
                        @enderror
                    </div>
                </div>
                <div >
                    <div >
                        <strong>Company Email:</strong>
                        <input type="email" name="email"  placeholder="Company Email"
                            value="{{ $company->email }}">
                        @error('email')
                        <div >{{ $message }}</div>
                        @enderror
                    </div>
                </div>
                <div >
                    <div >
                        <strong>Company Address:</strong>
                        <input type="text" name="address" value="{{ $company->address }}" 
                            placeholder="Company Address">
                        @error('address')
                        <div >{{ $message }}</div>
                        @enderror
                    </div>
                </div>
                <button type="submit" >Submit</button>
            </div>
        </form>
    </div>
</body>

</html>

If you submit the add or edit form blank. So the error message will be displayed with the help of the code given below:

@error('name')
    <div >{{ $message }}</div>
@enderror

Step 7 – Run Development Server

In the last step, open a command prompt and run the following command to start the development server:

php artisan serve

Then open your browser and hit the following URL for Laravel 10 CRUD Example Tutorial for Beginners:

http://127.0.0.1:8000/companies

Hope this code and post will helped you for implement Laravel 10 CRUD Example 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

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