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)); }
以上です。