将数据库日期类型映射到 datetime 或 Phalcon 中的任何其他对象


Mapping database date type to datetime or any other object in Phalcon

>我有一个类,它的主体中包含另外两个类:

class Leave
{
/**
 * @var Day
 */
private $fistDay;
/**
 * @var Day
 */
private $lastDay;
}

Day 是 php ''Datetime 类上的一个简单的容器,它实现了一些关于 days 操作的逻辑,以使代码更易于阅读。

当我将数据库中的 firstDay 列类型指定为"日期"时,phalcon 模型生成器将其映射为"字符串",而我想改用我的自定义类。有什么办法吗?仅仅几天就再做一张桌子似乎有点矫枉过正;-)

干杯。

谢谢@yergo,这是正确的地方:)在更新数据库记录之前,还需要使用 beforeSave() 和 afterSave() 再次创建对象字符串。

public function beforeSave()
{
    $this->firstDay = $this->firstDay->getStringDate();
    $this->lastDay = $this->lastDay->getStringDate();
}
public function afterFetch()
{
    $this->firstDay = new Day($this->firstDay);
    $this->lastDay = new Day($this->lastDay);
}
public function afterSave()
{
    $this->firstDay = new Day($this->firstDay);
    $this->lastDay = new Day($this->lastDay);
}

为了在从数据库中获取数据后应用一些格式,Phalcon 提供了一种可以在模型上实现afterFetch方法:

public function afterFetch()
{
    $this->firstDay = new Day($this->firstDay);
    $this->lastDay = new Day($this->lastDay);
}

我建议查看文档以查看可以通过这种方式管理的其他一些事件。