【CakePHP2.x】データ削除には postLink() を使うと便利

CakePHPにはデータ削除時のリンク用に
postLInk() というFormHelperが用意されている。


postLink()を使うと、POSTで削除用アクションにアクセスできて、
削除確認用のアラートも出してくれる。
とても便利。
リンクではなく、ボタンが出力される postButton()もあるが、
確認用のアラートが出ない・・・。

ということで、使い方を以下にまとめる。

まずは、Viewに postLink() を使って、リンクを生成する。

echo $this->form->postLink(
    '削除',
    array('action'=>'delete', $keyword_id, $user_id),
    array('class'=>'link-style'),
    '本当に削除しますか?'
);

第1引数はリンクに表示される文字列。
第2引数はリンク先。
リンク先の引数はControllerのActionの引数として受け取れる。
第3引数はオプション。
第4引数は削除確認アラートに表示される文字列。


次にControllerだけど、
以下のif文でGETでのアクセスを防ぐだけで、特別なことは必要ない。

public function delete($keyword_id, $user_id){
    if ($this->request->is('get')) {
        //GETアクセスだった場合の処理
    }
    $this->User->delete($_user_id);
    $this->redirect(array('controller'=>'users', 'action'=>'index', $keyword_id));
}


以上です。