8
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

データ更新の際にPUTメソッドを使うようになっていた。

Posted at

CakePHPでデータの更新をする際に、idが$this->request->dataに付与されている場合になる。Rails4(今はPUTではなくPATCHが標準)はhiddenタグを使ってそうなるのは知っていたのですが、CakePHPでそうなっているとは知らなかったです。。

FormHelper_—_CakePHP_Cookbook_2_x_documentation.png

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);
		}
	}
}

しっかりドキュメントをみたり、更新情報をおわないと!

8
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?