BETA

【CakePHP2】リクエストメソッド:post,put,get

投稿日:2018-12-30
最終更新:2018-12-30

putの存在を忘れてしまうのと、getも時々忘れてしまうので(つまり忘れる)まとめます。

CakePHP2, PHP5.6以上

View: $this->Form->create()

$post_type = 'get';  //postの場合はここを 'post' に  

<?= $this->Form->create('form', ['type' => $post_type]) ?>  
<?= $this->Form->input('text') ?>  
<?= $this->Form->end('submit') ?>  

Formヘルパーのcreatetypeにて post or get を選ぶ。ここではputは使わない。
デフォルトでは post投稿になるため、postの場合は指定しなくてもOK。

Controler: $this->request->is($type)

getリクエスト

get送信されたデータは以下のようにして受け取ることができる。

$this->request->query;  
$this->request->query('text');  

postリクエスト

post送信されたデータは以下のようにして受け取ることができる。

$this->request->data;  
$this->request->data('text');  

insert

public function add() {  
    if ($this->request->is('post')) {  
        // updateロジック  
    }  
}  

postで受け取るのでそのまま記述

update

$this->Model->save($this->request->data) する際、idが付与されていれば上書き(update)になるのだが、POST送信時点でidが付与されていた場合、それは post ではなく put になるらしい。

<input type="hidden" name="_method" value="PUT" />  

上記のように、hiddenでput送信だと情報が送られる。(FormHelper - CakePHP 2.X

そのためControllerでは下記のように受け取る必要がある。

public function edit($id = NULL) {  
    if ($this->request->is(['post', 'put'])) {  
        // updateロジック  
    }  
}  
技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

web中心のメモ置き場。プログラミングからデザインまで。

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる
技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
or 外部アカウントではじめる
10秒で技術ブログが作れます!