CakePHPでデータの更新をする際に、idが$this->request->dataに付与されている場合になる。Rails4(今はPUTではなくPATCHが標準)はhiddenタグを使ってそうなるのは知っていたのですが、CakePHPでそうなっているとは知らなかったです。。
なので、以下の様なことで挙動が変だなーと思ってました。
HogeController
<?php
HogeController extends AppController {
public function edit($id = NULL) {
if ($this->request->is('post')) {
//ここにこない
// UPDATE
} else {
$this->request->data = $this->Hoge->findById($id);
}
}
}
「$this->request->is('put')」でちゃんとPUTメソッドをキャッチするようにしないといけない。
HogeController
<?php
HogeController extends AppController {
public function edit($id = NULL) {
if ($this->request->is('put')) {
// UPDATE
} else {
$this->request->data = $this->Hoge->findById($id);
}
}
}
しっかりドキュメントをみたり、更新情報をおわないと!