在我的 Symfony/Doctrine 应用程序中,我希望将数据库中的任何时间戳字段作为 PEARDate
对象而不是日期字符串进行检索。例如,如果我的架构是
SomeEvent:
columns:
id:
type: integer
primary: true
start: timestamp
end: timestamp
我希望能够运行 Doctrine 查询来检索SomeEvent
对象并$anEvent->getStart()
成为 PEARDate
对象。现在,Doctrine 为我提供了所有基本上没用的时间戳字段的字符串。(我也希望保存日期以正常工作。)
实现这一目标的最佳方法是什么?
我使用 Hydration 侦听器进行了研究,但看起来我必须为每个表注册它并硬编码我想要转换的列名。从那以后,使用定制的 Hydrator 看起来并没有好多少,我失去了使用任何其他核心水合方法的能力,而我的日期又变成了字符串。
编辑:看起来 Doctrine 2 有一个正是我正在寻找的功能:自定义映射类型。不幸的是,这个站点被部署到一个不支持 PHP 5.3+ 的主机上,所以 Doctrine 2 出来了。:(