Events/add に繰り返し機能を追加しようとしています。
そのため、月曜日から金曜日 (またはそれ以上) まで同じイベントがある場合、ユーザーは 1 つずつ追加するのではなく、1 回の追加ですべてを追加できます。
Events/add.ctp に次の入力フィールドを追加しました。
$this->Form->input('repeat', array('type' => 'number'));
do で比較する - beforeSave() の while ループ
if(!empty($this->data[$this->alias]['repeat'])) {
$repeat = $this->data['Event']['repeat'];
$i = 0;
do {
$start = strtotime($this->data[$this->alias]['start'] . ' +1 day');
$end = strtotime($this->data[$this->alias]['end'] . ' +1 day');
$this->data[$this->alias]['start'] = date('Y-m-d H:i:s', $start);
$this->data[$this->alias]['end'] = date('Y-m-d H:i:s', $end);
$this->create();
$this->save($this->data);
//i think here's the problem... this shouldn't be done here right?
$i++;
} while ($repeat >= $i);
}
これを可能にする方法についてのアイデアが尽きました..追加アクションの後にデータを処理するために beforeSave を使用する必要があることは知っていますが、明らかに保存前にデータを保存することはできません...何かヒントはありますか?