Check user's age with laravel validation rules -


how can check age of user upon registration? want set minimum age 13 years old. ask user's date of birth , when validate other credentials, want check in fact 13+.

an excerpt user model looks this:

$rules = [             'name'                  => 'required|alpha|min:1',             'email'                 => 'required|email|unique:users',             'dob'                   => 'required|date'          ]; 

how can check date entered 13 years ago or more?

i have seen can use before:yyy-mm-dd rule laravel docs, so:

$rules = [             'name'                  => 'required|alpha|min:1',             'email'                 => 'required|email|unique:users',             'dob'                   => 'required|date|before:2001-04-15'          ]; 
  1. how calculate value?
  2. how use value within rules?

rmcleod answer ok, i'd suggest extracting custom rule:

validator::extend('olderthan', function($attribute, $value, $parameters) {     $minage = ( ! empty($parameters)) ? (int) $parameters[0] : 13;     return (new datetime)->diff(new datetime($value))->y >= $minage;      // or same using carbon:     // return carbon\carbon::now()->diff(new carbon\carbon($value))->y >= $minage; }); 

this way can use rule age like:

$rules = ['dob' => 'olderthan']; // checks 13 years default age $rules = ['dob' => 'olderthan:15']; // checks 15 years etc 

Comments

Popular posts from this blog

apache - Remove .php and add trailing slash in url using htaccess not loading css -

javascript - jQuery show full size image on click -