gpt4 book ai didi

php - Symfony 3 - 自动序列化 DateTime 对象

转载 作者:可可西里 更新时间:2023-10-31 23:02:30 24 4
gpt4 key购买 nike

在我的项目中,我有一些带有 createdAt 列的实体。

//...
class Acme
{
/**
* @var DateTime
*
* @ORM\Column(name="created_at", type="datetime")
*/
protected $createdAt;
}

我已经使用 Symfony 序列化程序启用了 FOSRestBundle:

fos_rest:
disable_csrf_role: ROLE_API
param_fetcher_listener: true
body_listener: true
format_listener:
rules:
- { path: '/', fallback_format: json, prefer_extension: false }
routing_loader:
default_format: json
include_format: false
view:
view_response_listener: force

我从 AcmeRepository 中的数据库中进行选择:

public function methodName() 
{
$qb = $this->createQueryBuilder('d');
$s = $qb->select('d.createdAt']);

return $s->getQuery()->getArrayResult();
}

结果,在我的 Controller 中:

$res = $em->getRepository('AppBundle:Acme')->methodName();
return $res;

它返回 json,但不是 [{"created_at": "2016-04-04 12:13:13"}] 我得到这个:

[{"created_at":{"timezone":{"name":"UTC","location":{"country_code":"??","latitude":0,"longitude":0,"comments":""}},"offset":0,"timestamp":1459769277}]

我该如何解决这个问题?

最佳答案

您可以使用适当的注释类型指定为 FOS REST 模块定义的类型的格式(查看 here 文档)。例如:

use JMS\Serializer\Annotation\Type as JMS;

class Acme
{
/**
* @var DateTime
*
* @ORM\Column(name="created_at", type="datetime")
* @JMS\Type("DateTime<'Y-m-d'>")
*/
protected $createdAt;
}

希望对你有帮助

关于php - Symfony 3 - 自动序列化 DateTime 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36428688/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com