У меня есть поля promo_starts_at
и promo_ends_at
в БД с типом date
Дата вводится с помощью средства выбора даты начальной загрузки в следующем формате 01/20/2019
"promo_starts_at" => "01/22/2019"
"promo_ends_at" => "01/30/2019"
У меня есть следующеенабор правил в моем ProductManager:
if($parameters['type'] == 'integer'){ $data[$field] = intval($request->input($field)); }
if($parameters['type'] == 'string'){ $data[$field] = $request->input($field); }
if($parameters['type'] == 'decimal'){ $data[$field] = $request->input($field); }
if($parameters['type'] == 'text'){ $data[$field] = $request->input($field); }
if($parameters['type'] == 'bool'){ $data[$field] = $request->input($field) ? 1 : 0; }
if($parameters['type'] == 'date'){ $data[$field] = date('Y-m-d', strtotime($request->input($field))); }
Кроме того, у меня также есть набор правил проверки:
'promo_starts_at' => [
'type' => 'date',
'validation' => 'date'
],
'promo_ends_at' => [
'type' => 'date',
'validation' => 'date'
]
По какой-то причине я не могу опубликовать дату в базе данных.
Я также пробовал разные правила проверки, такие как date_format:Y-m-d|after:today
, но ничего не изменилось.
Я нашел исправление для этой проблемы, последнее правило должно быть изменено на следующее:
$data[$field] = date('Y-m-d', strtotime($request->input($field)));
Это устранило проблему для меня.