Использование DatePicker для проверки возраста пользователей старше 18 лет - PullRequest
0 голосов
/ 09 октября 2018

Я работаю над веб-приложением Laravel, которое работает нормально.Я немного новичок в этом и хочу добавить функциональность, посредством которой Larvel должен проверять дату, введенную пользователем, и убедиться, что она старше 18 лет.Если это не так, выведите сообщение об ошибке пользователю на веб-интерфейсе.

 //Post Request of plan entries
    public
    function validatePlanEntries(Request $request)
    {

        $validation = $this->validate($request, [
            'dob' => 'required'
        ]);

}

Маршруты

Route::post( '/getplans', 'B2CController@validatePlanEntries')->name('b2c.getplans');

Ответы [ 2 ]

0 голосов
/ 09 октября 2018

Вы можете создать свой собственный валидатор для возраста, возможно, это даст вам представление: $validation = $this->validate($request, [ 'dob' => [ 'required', function ($attribute, $value, $fail) { $now = Carbon::now(); $userDob = Carbon::parse($value); if ($userDob->diffInYears($now) <= 18) { $fail('You are less than 18 years old'); } }, ] ]);

0 голосов
/ 09 октября 2018

В AppServiceProvider в функции boot() введите эту пользовательскую проверку.

AppServiceProvider

public function boot()
{
    Validator::extend('valid_birth_date', function ($attribute, $value, $parameters, $validator){

        $date_different = date_diff(new \DateTime($value), new \DateTime())->y;

        return $date_different >= 18;
    });
}

Контроллер

$validation = $this->validate($request, [
    'dob' => 'required|valid_birth_date'
],[
    'dob.valid_birth_date' => 'your custom message'
]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...