>我有一个类,它的主体中包含另外两个类:
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);
}
我建议查看文档以查看可以通过这种方式管理的其他一些事件。