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 sakarya escort sakarya escort bayan sakarya escort serdivan escort sakarya escort sakarya escort serdivan escort
karasu escort akyazı escort serdivan escort akyazı escort ferizli escort sapanca escort serdivan escort söğütlü escort sakarya escort izmit escort arifiye escort erenler escort hendek escort kocaali escort pamukova escort taraklı escort geyve escort