Laravel Custom Проверка двух дат - PullRequest
       9

Laravel Custom Проверка двух дат

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

Я создаю форму в Laravel, которая имеет два поля: departure-date и return-date.Я пытаюсь создать собственную логику проверки, в которой дата отправления ДОЛЖНА быть в тот же день или в любую другую дату после того, как пользователь заполнит форму.return-date также должен быть после departure date.Пожалуйста, помогите?

Макет формы

<!-- Departure date-->
<div class="form-line registar2 love {{ $errors->has('departure_date') ? ' has-error' : '' }}">
    <input type="date" class="form-input" name="departure_date" value="{{ old('departure_date') }}" required>
    <label>Departure Date *</label>
    <div class="error-label">Field is required!</div>
    <div class="check-label"></div>
    @if ($errors->has('departure_date'))
        <span class="help-block">
            <strong>{{ $errors->first('departure_date') }}</strong>
        </span>
    @endif
</div>
<!--End departure-->

<!-- Return date-->
<div class="form-line registar2 move {{ $errors->has('return_date') ? ' has-error' : '' }}">
    <input type="date" class="form-input" name="return_date" value="{{ old('return_date') }}" required>
    <label>Return Date *</label>
    <div class="error-label">Field is required!</div>
    <div class="check-label"></div>
    @if ($errors->has('return_date'))
        <span class="help-block">
            <strong>{{ $errors->first('return_date') }}</strong>
         </span>
    @endif
</div>
<!-- End return date-->

Проверка в контроллере

public function validatePlanEntries(Request $request)
{
    $validation = $this->validate($request, [
            'departure_date' => 'required',
            'return_date' => 'required'
        ]
    );
}

1 Ответ

0 голосов
/ 13 октября 2018
    public function validatePlanEntries(Request $request)
    {
        $validation = $this->validate($request, [
            'departure_date' => 'required|date|after:now',
            'return_date' => 'required|date|after:departure_date',
        ]
        );
    }

К сведению: правило after: xxxxx либо сравнивает с другим полем ввода, либо соблюдает правила собственного класса PHP DateTime.Таким образом, вы можете ввести after:now +2 hours.

Чтобы переопределить сообщения и написать свое собственное, создайте функцию messages() следующим образом:

public function messages()
{
    return [
        'departure_date.required' => 'Departure date is required',
        'departure_date.after' => 'Please choose a date in the future',
        'return_date.required'  => 'Return date is required',
        'return_date.after' => 'Your return date is before departure'
    ];
}

На всякий случай, если вы ищете jqueryРешение, позволяющее сделать выбор даты более удобным и менее подверженным ошибкам, вы можете взглянуть на Bootstrap Datepicker , возможно, оно того стоит.Удачи в вашем проекте!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...