Laravel 5.5 new feature – Custom Validation Rules with example
In this post we will give you information about Laravel 5.5 new feature – Custom Validation Rules with example. Hear we will give you detail about Laravel 5.5 new feature – Custom Validation Rules with exampleAnd how to use it also give you demo for it if it is necessary.
In this tutorial, I will tell you the new features for adding custom validation rules in Laravel 5.5.
In Laravel 5.5, You can define a dedicated class to handle the validation.
In the previous Laravel version, There is still possibility to define custom validation using Validator::extend
method but custom validation rule object is an excellent alternative solution.
You can generate a class for implementing custom validation rules in Laravel 5.5 by running new artisan command :
php artisan make:rule CustomValidationRule
After running above command, You will get a file CustomValidationRule.php
in following path app/Rules/.
Class CustomValidationRule
will have two methods passes
and message
The passes
method will have two method $attribute
and $value
that can be used to validate the field and message
method return the respected error message when validation fails.
Let’s have a example for age validation :
- <?php
- namespace AppRules;
- use IlluminateContractsValidationRule;
- class AgeValidationRule implements Rule
- {
- public functionpasses($attribute,$value)
- {
- return$value>18;
- }
- public functionmessage()
- {
- return':attribute should be greater than 18!';
- }
- }
<?php namespace AppRules; use IlluminateContractsValidationRule; class AgeValidationRule implements Rule { public function passes($attribute, $value) { return $value > 18; } public function message() { return ':attribute should be greater than 18!'; } }
Now in the controller, you can define the custom validation rules with request in following way :
- public functionstore()
- {
- // Validation message would be "age should be greater than 18!"
- $this->validate(request(),[
- 'age'=>[new AgeValidationRule]
- ]);
- }
public function store() { // Validation message would be "age should be greater than 18!" $this->validate(request(), [ 'age' => [new AgeValidationRule] ]); }
You can also use the constructor to inject any further dependency if you want.
If you use custom validation rule then you can not pass a string with rules seperated by a comma. You will have to pass each rule as a single element in an array like this :
- public functionstore()
- {
- // Validation message would be "age should be greater than 18!"
- $this->validate(request(),[
- 'age'=>['required',new AgeValidationRule]
- ]);
- }
public function store() { // Validation message would be "age should be greater than 18!" $this->validate(request(), [ 'age' => ['required',new AgeValidationRule] ]); }
Click here to see the custom validation rules in previous Laravel version : Custom Validation Rules
Now you have a easy way to define your custom validation rules in Laravel 5.5
Hope this code and post will helped you for implement Laravel 5.5 new feature – Custom Validation Rules with example. 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