Проверка даты Laravel на основе двух отдельных входных данных;ввод даты и времени - PullRequest
0 голосов
/ 14 сентября 2018

Я хотел бы проверить дату формы в Laravel на основе ввода DatePicker для даты и отдельного ввода Time Pare для времени:

<input class="form-control datepicker" name="datepicker_date">
<input class="form-control timepicker" name="datepicker_time">

Обработка всех рабочих штрафа и вот правила проверки Laravel:

'datepicker_date' => 'required|date|after:' . date('Y-m-d H:i', time()),
'datepicker_time' => 'required|date_format:H:i',

Это работает, так как проверяет, указана ли дата после текущего времени (и, если время не указано, проверяемое время будет 00:00:00 ').

Мне нужно принять во внимание поле timepicker как часть правила проверки, поэтому, если они выбрали 15:00, то дата проверки будет 2018/09/09 15:00:00.На данный момент это 2018/09/09 00: 00: 00.

Как я могу ввести время, которое было выбрано в поле ввода «datepicker_date», или считать поле datepicker_time как часть проверки datepicker_dateПравило?


Спасибо за вашу помощь, Мюкахит Цюцен.Вот что у меня сейчас:

 $this->request->add([
        'datetime' => date('Y-m-d H:i:s', strtotime($this->request->get('datepicker_date') . ' ' . $this->request->get('datepicker_time')))
    ]);

и

 'datepicker_date' => 'required|date',
 'datepicker_time' => 'required|date_format:H:i',
 'datetime' => 'required|date|after:' . date('Y-m-d H:i', time()),

Я получаю сообщение об ошибке «Поле даты и времени обязательно».хоть.Он добавляется в коллекцию, так как у меня есть dd () и я могу его увидеть, но валидатор не поднимает его?Я пытался использовать функцию запроса-> слияния и получил ошибку об отсутствии функции?


ОБНОВЛЕНИЕ: хорошо, это довольно странно, но мне удалось обойти эту проблему, добавив

   $this->request->add([
        'datetime' => date('Y-m-d H:i:s', strtotime($this->request->get('datepicker_date') . ' ' . $this->request->get('datepicker_time')))
    ]);

входит в функцию authorize (), предположительно потому, что она вызывается до функции rules () и добавляется новый параметр запроса.Любые лучшие предложения приветствуются:)

1 Ответ

0 голосов
/ 14 сентября 2018

Вы можете попробовать это.

Перед вашим кодом подтверждения:

$request->merge([
    'datepicker' => $request->get('datepicker_date').' '.$request->get('datepicker_time'),
]);

И вы можете проверить это так,

'datepicker' => 'required|date|after:' . date('Y-m-d H:i', time())

Я не пробовал, но это может решить вашу проблему.

Редактировать: request-> all output;

"datepicker_date" => "2018-09-14"
"datepicker_time" => "12:26"
"datepicker" => "2018-09-14 12:26"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...