Laravel 5.1 Date_Format验证器在Y-m-d格式上失败

时间:2015-07-22 18:08:51

标签: laravel laravel-validation laravel-5.1 laravel-request

我开始使用Request对象来验证传入的帖子数据,我已经看过其他人如何使用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"
}

1 个答案:

答案 0 :(得分:2)

显然,date_format验证失败了,因为我随机选择2015-02-30来测试我的API,但那一天不存在,因为那将是2月30日...哦,耻辱和浪费的时间。感谢@ceejayoz的所有帮助!!!