【发布时间】:2017-02-27 15:26:26
【问题描述】:
我正在使用 Validator 来检查我的 var。其中一个是对象SeminarDate,其中包括startDate 和endDate。我的想法是用 Symfony Validator 检查日期。但是,它不起作用。例如:“+0200StackOverflow”是有效日期...
控制器中的部分操作
foreach($dataReq['date'] as $key_a => $a) {
$SeminarDate = new SeminarDate;
$SeminarDate->setStartDate(new \DateTime($a['startdate']));
$SeminarDate->setEndDate(new \DateTime($a['enddate']));
$SeminarDates[] = $SeminarDate;
$errors = $validator->validate($SeminarDate);
if(count($errors)>0){
$errorString = (string) $errors;
return new View($errorString);
}
}
验证 yml 的一部分:
seminarDate:
- Collection:
fields:
startDate:
- Required:
- NotBlank:
message: 'startdate is required.'
- DateTime: ~
endDate:
- Required:
- DateTime: ~
- NotBlank:
message: 'endDate ist required.'
示例(向控制器发送 JSON 文件):
"date" : [
{ "startdate": "+0200Stackoverflow",
"enddate" : "+0200Stackoverlfow"
}
],
如果您需要更多,请询问。 谢谢
【问题讨论】:
-
解释输入参数的是
DateTime类。这适用于:new DateTime('now');php.net/manual/de/datetime.construct.php -
清除....谢谢....
-
print date('Y-m-d H:is',strtotime('+0200Stackoverflow'));#result 1970-01-01 01:0000就是这里发生的事情。你从 DateTime 得到有效的日期,但它一定是无效的。
标签: php json validation datetime symfony