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 adapazarı 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 serdivan escort sogütlü escort taraklı escort
sakarya escort adapazarı escort akyazı escort arifiye escort erenler escort ferizli escort geyve escort hendek escort karapürçek escort karasu escort kaynarca escort kocaali escort pamukova escort sapanca escort serdivan escort söğütlü escort taraklı escort
sakarya escort sapanca escort karasu escort erenler escort geyve escort kocaali escort akyazı escort hendek escort otele gelen escort ferizli escort kaynarca escort pamukova escort serdivan escort eve gelen escort arifiye escort karapürçek escort adapazarı escort sogütlü escort taraklı escort
sakarya escort kocaali escort taraklı escort pamukova escort serdivan escort akyazı escort arifiye escort geyve escort hendek escort karapürçek escort sapanca escort kaynarca escort erenler escort sogütlü escort karasu escort otele gelen escort ferizli escort eve gelen escort adapazarı escort
sapanca escort sapanca escort webmaster forum