在我的项目中,我有一些带有createdAt列的实体。
//...
class Acme
{
/**
* @var DateTime
*
* @ORM\Column(name="created_at", type="datetime")
*/
protected $createdAt;
}
Run Code Online (Sandbox Code Playgroud)
我已启用FOSRestBundleSymfony 序列化程序:
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
Run Code Online (Sandbox Code Playgroud)
我从数据库中选择AcmeRepository:
public function methodName()
{
$qb = $this->createQueryBuilder('d');
$s = $qb->select('d.createdAt']);
return $s->getQuery()->getArrayResult();
}
Run Code Online (Sandbox Code Playgroud)
结果,在我的控制器中:
$res = $em->getRepository('AppBundle:Acme')->methodName();
return $res;
Run Code Online (Sandbox Code Playgroud)
它返回 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}]
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
您可以使用正确的注释类型指定为 FOS REST 模块定义的类型的格式(查看此处的文档)。例如:
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;
}
Run Code Online (Sandbox Code Playgroud)
希望这有帮助
| 归档时间: |
|
| 查看次数: |
6476 次 |
| 最近记录: |