現在、ユーザーが既に完了したイベントをアーカイブできるようにしようとしています。
その後、イベントがアーカイブ テーブルに表示されます。
したがって、基本的には 1 つのアーカイブ テーブルと 1 つのイベント テーブルがあり、ユーザーがイベントをアーカイブしたい場合、アーカイブ追加フォームでイベントを表示できるはずです (イベントの $id を入力する必要があります)。 .
しかし、フィールドにデータを入力する方法がわかりません..値を設定しようとしました..しかし、イベントはセッションではないため、機能しませんでした。また、フォームの先頭に $id を設定しようとしましたが、それもうまくいきませんでした。
これは、イベント コントローラーのアーカイブ関数のコードです。
public function archive($id = null) {
if ($this->request->is('post')) {
$event = $this->Event->read($id);
$archive['Archive'] = $event['Event'];
$archive['Archive']['eventID'] = $archive['Archive']['archiveID'];
unset($archive['Archive']['archiveID']);
$this->loadModel('Archive');
$this->Archive->create();
if ($this->Archive->save($archive)) {
$this->Session->setFlash(__('The event has been archived'));
$this->Event->delete($id);
$this->redirect(array('action' => 'eventmanage'));
} else {
$this->Session->setFlash(__('The event could not be archived. Please, contact the administrator.'));
}
}
}