0

I am pretty sure I am missing just something small, but damn-hell can't figure it out.. please help me guys :)

I've extended AppServiceProvider.php

public function boot()
    {
        //
        Validator::extend('ageLimit', 'App\Http\CustomValidator@validateAgeLimit');
    }

I've created new CustomValidator.php

<?php

namespace App\Http;
use DateTime;

class CustomValidator {

    public function validateAgeLimit($attribute, $value, $parameters, $validator)
    {
        $today = new DateTime(date('m/d/Y'));
        $bday  = new DateTime($value);

        $diff = $bday->diff($today);
        $first_param = $parameters[0];

        if( $diff->y >= $first_param ){              
            return true;
        }else{
          return false;
        }

    }

}

I've added new line to validation.php

/*
|--------------------------------------------------------------------------
| Custom Validation Language Lines
|--------------------------------------------------------------------------
| 
| Here you may specify custom validation messages for attributes using the
| convention "attribute.rule" to name the lines. This makes it quick to
| specify a specific custom language line for a given attribute rule.
|
*/
'age_limit' => ':attribute -> Age must be at least :ageLimit years old.',

'custom' => [
    'attribute-name' => [
        'rule-name' => 'custom-message',
    ],
],  

Here comes my rule:

'birth_date' => 'required|date|ageLimit:15', 

All of this works ok ... excluded the parameter :ageLimit in validation.php file ..

How can I get there the parameter 15 I am passing in rule ???

Because I am getting this message:

Birth day -> Age must be at least :ageLimit years old.

And certainly, I would like to get this:

Birth day -> Age must be at least 15 years old.

1 Answer 1

3

Below your Validator::extend(...) you could add:

Validator::replacer('ageLimit', function($message, $attribute, $rule, $parameters) {
    $ageLimit = $parameters[0];

    return str_replace(':ageLimit', $ageLimit, $message);
});

https://laravel.com/docs/5.2/validation#custom-validation-rules

Hope this helps!

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.