Laravel 5.1 Date_Format Y-m-d 格式验证器失败
Laravel 5.1 Date_Format Validator Fails on Y-m-d Format
我开始使用 Request 对象来验证传入的 post 数据,并且我已经看到其他人如何使用 date_format 的示例,但我似乎无法获得日期即使我使用的格式在您使用 PHP 的 date_parse_from_format:
时也会通过
print_r(date_parse_from_format('Y-m-d','2015-07-27'));
输出
更新:它们是 date_parse_from_format 中的警告,但我不明白为什么它反映了格式。
{
"year": 2015,
"month": 2,
"day": 30,
"hour": false,
"minute": false,
"second": false,
"fraction": false,
"warning_count": 1,
"warnings": {
"10": "The parsed date was invalid"
},
"error_count": 0,
"errors": [],
"is_localtime": false
}
验证者
public function rules()
{
return [
'rental_id' => 'required|exists:rentals,id',
'start_at' => 'required|date_format:Y-m-d',
'end_at' => 'required|date_format:Y-m-d'
];
}
我使用 PostMan 发送有效载荷:
rental_id = 1 as text
start_at = 2015-02-30 as text
end_at = 2015-02-30 as text
它会抛出 NotFoundHttpException,但如果我在验证程序请求中注释掉 start_at 和 end_at,它就会通过,并使用正确的有效负载进入我的控制器操作:
{
"rental_id": "1",
"start_at": "2015-02-30",
"end_at": "2015-02-30"
}
显然,date_format 验证失败,因为我随机选择了 2015-02-30 来测试我的 API,但那一天不存在,因为那将是 2 月 30 日...哦耻辱和浪费的时间。感谢@ceejayoz 的所有帮助!!!
我开始使用 Request 对象来验证传入的 post 数据,并且我已经看到其他人如何使用 date_format 的示例,但我似乎无法获得日期即使我使用的格式在您使用 PHP 的 date_parse_from_format:
时也会通过print_r(date_parse_from_format('Y-m-d','2015-07-27'));
输出
更新:它们是 date_parse_from_format 中的警告,但我不明白为什么它反映了格式。
{
"year": 2015,
"month": 2,
"day": 30,
"hour": false,
"minute": false,
"second": false,
"fraction": false,
"warning_count": 1,
"warnings": {
"10": "The parsed date was invalid"
},
"error_count": 0,
"errors": [],
"is_localtime": false
}
验证者
public function rules()
{
return [
'rental_id' => 'required|exists:rentals,id',
'start_at' => 'required|date_format:Y-m-d',
'end_at' => 'required|date_format:Y-m-d'
];
}
我使用 PostMan 发送有效载荷:
rental_id = 1 as text
start_at = 2015-02-30 as text
end_at = 2015-02-30 as text
它会抛出 NotFoundHttpException,但如果我在验证程序请求中注释掉 start_at 和 end_at,它就会通过,并使用正确的有效负载进入我的控制器操作:
{
"rental_id": "1",
"start_at": "2015-02-30",
"end_at": "2015-02-30"
}
显然,date_format 验证失败,因为我随机选择了 2015-02-30 来测试我的 API,但那一天不存在,因为那将是 2 月 30 日...哦耻辱和浪费的时间。感谢@ceejayoz 的所有帮助!!!