33歳からでもプログラマーになれますか?

ブログタイトル通りのブログです。ブログ。

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')) {

}

で切り抜ける。