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

时间:2016-02-24 09:44:06

标签: php orm phalcon

我有一个类,其中包含两个其他类:

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

Day是php \ Datetime类的简单容器,它在几天内实现了一些操作逻辑,使代码更易于阅读。

当我在数据库中指定firstDay列的类型为' date'时,phalcon模型生成器将其映射为' string'虽然我想使用我的自定义课程。有什么办法吗?仅仅几天制作另一张桌子似乎是一种矫枉过正; - )

干杯。

2 个答案:

答案 0 :(得分:1)

感谢@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);
}

答案 1 :(得分:0)

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

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

我建议您查看documentation以查看您可以通过此方式管理的其他活动。