在我的Laravel应用程序中,我有一个包含两列date
的“事件”模型。在EventRequest.php
文件中,我定义了如下规则:
public function rules(): array
{
return [
"date_start" => ["date_format:d-m-Y", "required"],
"date_end" => ["date_format:d-m-Y", "required"],
"status" => ["required", "string", "in:open,closed"],
"location_name" => ["required", "string", "max:100"],
"location_description" => ["required", "string", "max:750"],
];
}
然而,当我尝试创建一个新的Event
,并将date_start
和date_end
的值设置为06-12-2040
和07-12-2040
时,我得到了以下错误:
"message": "SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect date value: '06-12-2040' for column 'date_start' at row 1 (Connection: mysql, SQL: insert into `events` (`date_start`, `date_end`, `status`, `location_name`, `location_description`, `updated_at`, `created_at`) values (06-12-2040, 07-12-2040, open, Test name 2, Test desc 2, 2023-03-24 22:53:16, 2023-03-24 22:53:16))",
有没有人能帮我解释一下我在这里漏掉了什么?这些不是正确的格式吗?
Postman截图:
1条答案
按热度按时间zzoitvuj1#
保存到数据库的日期需要是
Y-m-d
,您正在传递d-m-Y
。如果在保存之前将其解析为Carbon
对象,则Laravel
知道如何序列化该对象以正确保存。或者使用更标准的日期格式,使用
Y-m-d
可能不需要任何调整。