Laravel 5.5 new feature - Custom Validation Rules with example

Laravel 5.5 new feature - Custom Validation Rules with example

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 App\Rules;
  3. use Illuminate\Contracts\Validation\Rule;
  4. class AgeValidationRule implements Rule
  5. {
  6. public function passes($attribute, $value)
  7. {
  8. return $value > 18;
  9. }
  10. public function message()
  11. {
  12. return ':attribute should be greater than 18!';
  13. }
  14. }

Now in the controller, you can define the custom validation rules with request in following way :

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

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

Click here to see the custom validation rules in previous Laravel version : Custom Validation Rules

Phone: (+91) 8800417876
Noida, 201301
sakarya escort akyazı escort arifiye escort erenler escort eve gelen escort ferizli escort geyve escort hendek escort otele gelen escort sapanca escort söğütlü escort taraklı escort
sakarya escort - akyazı escort - arifiye escort - erenler escort - eve gelen escort - ferizli escort - geyve escort - hendek escort - karapürçek escort - karasu escort - kaynarca escort - kocaali escort - otele gelen escort - pamukova escort - sapanca escort - söğütlü escort - taraklı escort
sapanca escort hendek escort karasu escort escort sakarya sakarya escort bayan adapazarı escort sakarya escort sakarya escort sakarya escort sakarya escort sakarya escort sakarya escort