另一个自动化日期字段,如在CakePHP中创建和更新

时间:2012-04-13 01:22:53

标签: cakephp

我已经知道我可以在数据库表中创建名为“created”和“updated”的字段,并且Cake会自动插入适当的值。

但是,我想要做的是创建一个名为'followup'的新字段,并且每当插入新记录时,Cake会自动插入今天的日期加2周。换句话说,它就像创建日期,但未来2周。

我知道我可以手动在控制器中执行此操作,但我想知道是否有一种方法可以在模型/行为级别执行此操作,以便无论哪个控制器操作正在创建新记录,它都会自动发生。

1 个答案:

答案 0 :(得分:2)

您只需在模型中使用beforeSave回调:

public function beforeSave(array $options) {
    if (empty($this->data[$this->alias]['id']) && !$this->id) {
        $this->data[$this->alias]['followup'] = date('Y-m-d H:i:s', strtotime('+2 weeks'));
    }
    return true;
}

这会自动将followup日期添加到任何新记录(不包含id)。