test
CakePHP Note
Update(更新)
UPDATE:2008.04.09
editアクション1つで、レコードの更新あるいは更新用フォーム表示のどちらか1つを行ないます。
フォームから更新用データが送信された場合$this->dataにデータが入ってきます。$this->dataが入っていればレコードを更新し、$this->dataにデータが入っていなければデータを読み込み$this->dataにデータをセットして更新用フォームを表示します。$this->dataにデータをセットする事で更新用フォームにデータがセットされます。
class PostsController extends AppController {
function edit($id = null) {
if (!$id && empty($this->data)) {
$this->Session->setFlash(__('Invalid Post', true));
$this->redirect(array('action'=>'index'));
}
if (!empty($this->data)) {
if ($this->Post->save($this->data)) {
$this->Session->setFlash(__('The Post has been saved', true));
$this->redirect(array('action'=>'index'));
} else {
$this->Session->setFlash(__('The Post could not be saved. Please, try again.', true));
}
}
if (empty($this->data)) {
$this->data = $this->Post->read(null, $id);//$this->dataにデータをセットするとフォームにもセットされる。
}
}
}
