postがputに?
cakephpで更新処理画面を作ってた時にハマったのでメモ。
$this->request->is('post') { }
でポストデータをセーブしようとしてたら、なぜかセーブできない。 デバッグで確認してみてもPOSTデータは送られてきてるし、データの配列にも問題ない。
で、firebugでリクエストを調べてみたら、なぜかputで送られている。。。
なぜだ。。。
formはちゃんとmethod=postとなっている。が、、、
<form action="xxx" id="xxx" method="post" accept-charset="utf-8"> <div style="display:none;"> <input type="hidden" name="_method" value="PUT"> </div> <input type="hidden" name="xxx" value="1" id="xxx"><div class="form-group mb10"> </form>
しかもhiddenフィールドをもたせるとこの現象が発生するようで、hiddenフィールドが
<input name="data[hoge][id]" value="1" id="hoge" type="hidden">
みたくなってた。
なんでこうなるのかまったく謎だが、
$this->request->is(array('post', 'put')) { }
で切り抜ける。