假设我获取了一些数组-Object(通过getArrayResult()
提取实体),并且它包含DateTime
字段。如果我抛弃此字段:
"createdAt": {
"date": "2016-06-13 19:35:28.000000",
"timezone_type": 100500,
"timezone": "Some/Timezone"
}
我看到我没有正常的(格式)日期字符串,而是DateTime
对象。当然,我可以写这样的东西以获取不错的格式字符串:
$result['createdAt'] = $result['createdAt']->format("Y-m-d H:i:s");
但是,如果我需要获取10.000个项目(不确定这发生了:))然后执行for
循环以更新每个createdAt
字段...我认为至少是丑陋的解决方案,所以也许有一些在这种情况下,不错的解决方案或最佳实践?
我不明白为什么未设置您的创建字段。它应该是nullable = false/null中的数据库中的null,以便您不必检查。这将是最好的实践。
我的意思是,它是在某个时候创建的,但是没有创建?这没有道理:)
您可以使用Symfony serializer组件将数组序列化为JSON,并使用datetimenormalizer格式化DateTime对象。
use SymfonyComponentSerializerNormalizerDateTimeNormalizer;
use SymfonyComponentSerializerSerializer;
$encoders = array(new JsonEncoder());
$normalizers = array(new DateTimeNormalizer('Y-m-d H:i:s'));
$serializer = new Serializer($normalizers, $encoders);
$jsonResult = $serializer->serialize($result, 'json');