If you’re working on a Laravel 10 web application and you’re not familiar with creating custom validation error messages, this tutorial is designed for you. In this step-by-step guide, you will learn how to create custom validation error messages in your Laravel controllers and pass them to your views, allowing you to display custom error messages in your Blade view files.
Validation is an essential part of any web application, and Laravel provides built-in validation features. However, customizing the error messages can provide a more user-friendly experience and improve the clarity of error notifications.
Laravel 11 / 10 Display Custom Error Message
Steps to create and show a custom error validation message on blade view in laravel apps:
Step 1 – Setup New Laravel 10 App
First of all, Open your terminal or command prompt(cmd).
Then execute the following command into it to install or download laravel app on your system:
composer create-project --prefer-dist laravel/laravel Blog
This command will install fresh new laravel setup in provided location. After that, open your laravel web application in any text editor and Go to your application .env file and set up database credentials and move next step.
Step 2 – Setup Database with Laravel App
Once you have installed laravel 10 apps on your server. Now, you need to configure database with laravel apps.
So, go to your project or app root directory and find .env file. Then add database credentials in the .env file like following:
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
In this step, execute the following command on the terminal to create tables into the database:
php artisan migrate
This command will create some tables in your database.
Step 4 – Add Routes
In this step, Open your routes/web.php and update the following routes into your routes/web.php file:
routes/web.php
use App\Http\Controllers\CustomErrorController; Route::get('form', [CustomErrorController::class, 'index']); Route::get('store', [CustomErrorController::class, 'store']);
Step 5 – Generate Controller By Command
In this step, execute the following command on terminal to create custom error message controller in laravel app:
php artisan make:controller CustomErrorController
After that, Go to app/Http/Controllers/CustomErrorController.php and update the following code into your controller file:
app/Http/Controllers/CustomErrorController.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
In this step, Go 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 10 Custom Validation Error Message Example Tutorial -Tutsmake.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 10 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
In this step, Execute the PHP artisan serve command on terminal 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