Php 保存条令记录时将日期转换为字符串

Php 保存条令记录时将日期转换为字符串,php,database,orm,doctrine,Php,Database,Orm,Doctrine,我正在尝试将我的一个PHP项目迁移到Doctrine。我以前从未使用过它,所以有一些事情我不明白。在我当前的代码中,我有一个类似的类: class ScheduleItem { private Date start; //A PEAR Date object. private Date end; public function getStart() { return $this->start; } public function setStart($val) { $th

我正在尝试将我的一个PHP项目迁移到Doctrine。我以前从未使用过它,所以有一些事情我不明白。在我当前的代码中,我有一个类似的类:

class ScheduleItem { private Date start; //A PEAR Date object. private Date end; public function getStart() { return $this->start; } public function setStart($val) { $this->start = $val; } public function getEnd() { return $this->end; } public function setEnd($val) { $this->end= $val; } }
我曾希望能够使用
Date
对象作为开始时间和结束时间,并在保存到数据库时将它们转换为字符串。我如何才能做到这一点?

您应该使用文件定义模式。使用yaml文件,您可以使用生成类。您还可以使用CLI为数据库生成SQL,并创建数据库和表

Doctrine应该注意将日期转换为适合DB的日期,然后在加载对象时再转换回来


希望这能有所帮助。

那么,也许条令是这份工作的错误工具。我对ORM唯一的其他体验是hibernate,我正在为这个项目寻找类似的东西。基本上,我希望PHP对象与数据库中的记录相对应,但我也希望能够向这些对象添加我自己的方法。从yaml生成类不允许我这样做。如果一个Doctrine_Record对象不允许我在对象上定义操作,我真的看不出它比一个关联数组更好。你仍然可以为每个对象添加自定义代码。基本上,条令将为您创建“基本”类。因此,如果在yaml文件中定义了一个用户对象,Doctrine将创建:/generated/BaseUser.php和/User.php。用户扩展BaseUser。您可以自由添加到User.php,如果/当您在yaml文件中更改用户时,BaseUser.php将是唯一更改的内容。以防万一:meta.stackoverflow.com/questions/686/…;) class ScheduleItem extends Doctrine_Record { public function setTableDefinition() { $this->hasColumn('start', 'timestamp'); $this->hasColumn('end', 'timestamp'); } }