Laravel 9 Custom Validation Rules and Error Messages Example

Laravel 9 custom validation rules and error messages; Through this tutorial, i am going to show you how to add custom validation rules and show custom validation error messages in laravel 9 apps.

Laravel 9 Custom Validation Rules and Error Messages Example

Use the below given steps to add custom validation and show custom validation error in laravel 9 apps:

  • Step 1 – Install Laravel 9 App
  • Step 2 – Connecting App to Database
  • Step 3 – Run Migration Command
  • Step 4 – Add Routes
  • Step 5 – Generate Controller By Command
  • Step 6 – Create the blade view
  • Step 7 – Run Development Server

Step 1 – Install Laravel 9 App

Run the following command on command prompt to install or download laravel 9 apps:

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

Step 2 – Configure App to Database

To add database credentials in the .env file:

DB_CONNECTION=mysql 
DB_HOST=127.0.0.1 
DB_PORT=3306 
DB_DATABASE=here your database name here
DB_USERNAME=here database username here
DB_PASSWORD=here database password here

Step 3 – Run Migration Command

Run the following command on command prompt to create tables into database:

php artisan migrate

This command will create some tables into your database.

Step 4 – Add Routes

Visit routes/web.php and update the following routes into your routes/web.php file:

use App\Http\Controllers\CustomErrorController;
Route::get('form', [CustomErrorController::class, 'index']);
Route::get('store', [CustomErrorController::class, 'store']);

Step 5 – Generate Controller By Command

Run the following command on command prompt to create custom error message controller in laravel app:

php artisan make:controller CustomErrorController

Visit to app/Http/Controllers/CustomErrorController.php and update the following code into your controller file:

<?php

namespace App\Http\Controllers;
  
use Illuminate\Http\Request;
use App\Models\User;
  
class CustomErrorController extends Controller
{
    public function create()
    {
        return view('form');
    }
  
    public function store(Request $request)
    {
        $request->validate(
            [
                'name' => 'required',
                'password' => 'required|min:5',
                'email' => 'required|email|unique:users'
            ], 
            [
                'name.required' => 'Name is required',
                'password.required' => 'Password is required'
            ]
          );
   
        $input = $request->all();
        $input['password'] = bcrypt($input['password']);
        $user = User::create($input);
    
        return back()->with('success', 'User created successfully.');
    }
}

Step 6 – Create Blade View

Visit to resources/views folder and create one blade view file name from.blade.php and update the following code into your file:

<!DOCTYPE html>
<html>
<head>
    <title>Laravel 9 Custom Validation Error Message Example Tutorial -Laratutorials.com</title>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
</head>
<body>
    <div class="container">
  
        <h1>Laravel 9 Custom Validation Error Message Example</h1>
   
        @if(Session::has('success'))
        <div class="alert alert-success">
            {{ Session::get('success') }}
            @php
                Session::forget('success');
            @endphp
        </div>
        @endif
   
        <form method="POST" action="{{ route('store') }}">
  
            @csrf
  
            <div class="form-group">
                <label>Name:</label>
                <input type="text" name="name" class="form-control" placeholder="Name">
                @if ($errors->has('name'))
                    <span class="text-danger">{{ $errors->first('name') }}</span>
                @endif
            </div>
   
            <div class="form-group">
                <label>Password:</label>
                <input type="password" name="password" class="form-control" placeholder="Password">
                @if ($errors->has('password'))
                    <span class="text-danger">{{ $errors->first('password') }}</span>
                @endif
            </div>
    
            <div class="form-group">
                <strong>Email:</strong>
                <input type="text" name="email" class="form-control" placeholder="Email">
                @if ($errors->has('email'))
                    <span class="text-danger">{{ $errors->first('email') }}</span>
                @endif
            </div>
   
            <div class="form-group">
                <button class="btn btn-success btn-submit">Submit</button>
            </div>
        </form>
    </div>
</body>
</html>

Step 7: Run Development Server

Run the PHP artisan serve command on command prompt to start server locally:

php artisan serve

If you want to run the project diffrent port so use this below command

php artisan serve --port=8080

Then open your browser and hit the following url on it:

http://localhost:8000/form

Recommended Laravel Tutorials

Be First to Comment

Leave a Reply

Your email address will not be published.