Laravel 5.5 new feature – Custom Validation Rules with example

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 :

  1. <?php
  2. namespace AppRules;
  3. use IlluminateContractsValidationRule;
  4. class AgeValidationRule implements Rule
  5. {
  6. public functionpasses($attribute,$value)
  7. {
  8. return$value>18;
  9. }
  10. public functionmessage()
  11. {
  12. return':attribute should be greater than 18!';
  13. }
  14. }
<?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 :

  1. public functionstore()
  2. {
  3. // Validation message would be "age should be greater than 18!"
  4. $this->validate(request(),[
  5. 'age'=>[new AgeValidationRule]
  6. ]);
  7. }
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 :

  1. public functionstore()
  2. {
  3. // Validation message would be "age should be greater than 18!"
  4. $this->validate(request(),[
  5. 'age'=>['required',new AgeValidationRule]
  6. ]);
  7. }
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

For More Info See :: laravel And github

Leave a Comment

Your email address will not be published. Required fields are marked *

  +  69  =  79

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