Exploring the Power of Custom Rule Validation in Laravel 10

Aman jain
6 min readSep 2, 2023

Greetings, esteemed reader. I extend to you a warm welcome to my latest article, in which we shall embark upon an exploration of the formidable prowess inherent in custom rule validation within the Laravel 10 framework.

Introduction

Welcome to the world of Laravel Custom Rules Validation! If you thought the standard validation rules, in Laravel were sufficient well think again! In this article we will delve into the realm of custom rules validation and discover how it enhances flexibility and accuracy beyond your wildest imagination.

Prepare yourself to break free, from the limitations imposed by built in validation rules as we uncover the secrets of custom rules and their boundless possibilities. No longer will you need to contort yourself to fit within predetermined requirements. With Laravel Custom Rules Validation you can finally march to the beat of your validation drum. So lets begin our journey and explore all the wonders that lie ahead!

Why Custom Rules Validation ?

This question holds significant importance: why is there a necessity for custom rules validation?.

In this article we will explore this subject. Although we use Laravel for our web development projects there are situations where the default validation it offers may not meet our needs. In cases custom rule validation becomes a resource to rely on.

Customizing the validation rules also has the benefit of enhancing the quality of data minimizing errors and inconsistencies and improving the efficiency of the system well as the user experience.

Sure thing, let’s dive right in with an example to break it down step by step.

Step1: To begin, create a Laravel project by executing this command to set up your Laravel project.

Step2. In this step we will create a route inside a web.php file.

web.php

Step3. Now in this step we will create a form.

form.blade.php

Step 4: Certainly, in this step, we will generate a custom rule class by executing the following command to create your unique custom validation rule class:

When you execute the command mentioned earlier, it will generate a new file within your Laravel project at the location: App\Http\Rules\ValueRequestRule.

validationRuleRequest File
ValueRequestRule.php

Now will we understand this file .

This class implement Illuminate\Contracts\Validation\ValidationRule interface ,it is used for to check your data is valid or not in laravel application.

The ValueRequestRule has a single method named validate . It contains three arguments.

  1. The first argument is string data type named as $attribute .This thing here tells us which input field we’re checking.
  2. The second argument is of mixed data type, named $value . This refers to the value of the input field being validated.
  3. The third argument is a Closure function named $fail . In the event of validation failure, this Closure is responsible for generating an error message.

The validate() method is responsible for determining whether the value of the input field is valid. If the value is invalid, the validate() method should call the closure with the error message as its argument.

The validate() method in the code you provided is empty, so it does not actually do any validation. However, you can add your own validation logic to this function to ensure that the input data is valid.

For example, you could use the validate() method to validate the length of a string, the format of an email address, or the value of a numeric field.

Here is an example of how you could use the validate() method to validate the length of a string:

Step5: Now we will create a Request Class for validation by using a command

After running earline command a new Folder is create inside App\Http\Requests and inside this folder a file is created named ValueRequest.

After you have established the rule, you can link it to a validator by including an instance of the rule object along with your additional validation rules.

Step6 : During this step ,we will create a controller by utilizing a command.

Inside the EmployeeController, we will create two functions: one called index, which is used to display a form, and the other called store, which is used to store data in the database.

Now we will update store function and apply validation.

Now, this will validate the input. If the input is valid, it will store the employee details; otherwise, it will raise an error.

Now Start the server using command

🚀💥 Whoa, check this out! Our server is now running on 127.0.0.1! 🌐🔥

We’re in the fast lane to success, my friends! 🏁💻🚀 #TechTriumph 🚀😎🎉

You won’t believe it, but guess what’s about to happen! 🤩 Prepare to be amazed because the outcome is going to be absolutely mind-blowing! 🎉🚀

Output

Using custom rule validation in Laravel has several benefits that make it a good choice:

1. Flexibility: Custom validation rules allow you to check data in a way that suits your app’s specific needs. For instance, you can check if a text is the right length or if a number falls within a certain range.

2. Reusability: Once you make a custom validation rule, you can use it in different parts of your app. This saves time, keeps your code consistent, and avoids repeating the same checks.

3. Extensibility: You can build on custom validation rules to add more features. For example, you can create a rule to validate phone numbers and then expand it to check if the phone number belongs to a particular country.

4. Maintainability: Custom validation rules are easy to update because they’re written in plain PHP code, which is simple to understand and modify.

5. Performance: Custom validation rules can be just as fast as the built-in ones because Laravel is designed to work efficiently.

Hey there! 😄 Are you ready to dive into the exciting world of Laravel Validation Using Request? 🚀 Well, I’ve got you covered, my friend! 🙌

Check out this awesome article that breaks it down in a super-duper easy-to-understand way. 📖✨ You can find it right here: 👉

https://medium.com/@amanj0314/laravel-validation-using-request-53f7f90ceff7

And don’t forget to share your thoughts and feedback! 🤜💬 Let’s learn and grow together! 😊💡 #Laravel #Validation #LearnAndGrow 🌟

I hope you enjoy the article! 🤓

--

--