0

データベーステーブルに 'created' および 'updated' と呼ばれるフィールドを作成できることと、Cake が適切な値を自動的に挿入することは既に知っています。

しかし、私がやりたいことは、「followup」という新しいフィールドを作成し、新しいレコードが挿入されるたびに、Cake に今日の日付と 2 週間を自動的に挿入させることです。つまり、作成日と同じですが、2 週間先になります。

コントローラーで手動でこれを行うことができることは知っていますが、モデル/動作レベルでこれを行う方法があり、どのコントローラーアクションが新しいレコードを作成しているかに関係なく自動的に発生するかどうか疑問に思っていました.

4

1 に答える 1

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) に日付が自動的に追加されます。

于 2012-04-13T01:37:11.490 に答える