ここでは、以下のように ID を指定して、レコードを編集できるようにしてみます。
http://localhost/tasks/edit/1
http://localhost/tasks/edit/2
http://localhost/tasks/edit/3
TasksController
に edit
アクションを追加し、それに対応する edit.ctp
テンプレートを追加します。
<?php
class TasksController extends AppController {
public $components = array('Session');
...
public function edit($id = null) {
if ($this->request->is('get')) {
$this->Task->id = $id;
$this->request->data = $this->Task->read();
} else {
if ($this->Task->save($this->request->data)) {
$this->Session->setFlash('Your post has been updated.');
$this->redirect(array('action' => 'index'));
} else {
$this->Session->setFlash('Unable to update your post.');
}
}
}
}
<h1>Edit Task</h1>
<?php
echo $this->Form->create('Task');
echo $this->Form->input('id', array('type' => 'hidden'));
echo $this->Form->input('title', array('rows' => '1'));
echo $this->Form->input('body', array('rows' => '3'));
echo $this->Form->end('Save Task');
?>
ちなみに、edit ページへのリンクは、例えば以下のようにして生成することができます。
$this->Html->link('Edit', array('action' => 'edit', $post['Task']['id']));