CakePHP

CakePHP2.1でデータの削除(実践編その3)

更新日:

今日は、CakePHPでデータの削除方法を勉強してみます。『CakePHPでデータの更新』の続きです。まず、deleteアクションを作成します。

1. Collectionコントローラにdeleteアクションを追加します。POST送信されたときだけデータを削除するようにします。

app/Controller/CollectionController.php

public function delete($id=null){
 $this->Collection->id=$id;
 //POST送信の場合
 if($this->request->is('post')){
 //データの削除
 $this->Collection->delete();
 //削除後、indexページへ移動する
 $this->redirect('index');
 }

2. edit.ctpにデータ削除用のリンクを作成します。削除確認用のページを作成してから削除するようにしてもいいのですが、cakePHP2.xにはpostLink、postButton()という便利なメソッドがありますので、それを利用します。このメソッドは、HTTPのPOSTメソッドを使ってページにアクセスするリンクやボタンを生成します。これを利用することにより、コントローラでは、GETメソッドを用いたアクション、例えば、deleteのようなアクションを無視することが出来るようになります。

app/view/Collection/edit.ctp

<h1>編集用画面</h1>
 <?php
 //フォームの開始を宣言する
 echo $this->Form->create('Collection');
 //編集用フォームの生成
 echo $this->Form->input('title');
 echo $this->Form->input('created');
 echo $this->Form->input('col_code');
 echo $this->Form->input('save_space');
 //フォームの終了宣言
 echo $this->Form->end('更新');
 //データの削除
 echo $this->Form->postLink('削除',array('action'=>'delete',$id),array(),'このデータを削除してもいいですか');
 ?>

3. それでは、テストで作成したデータを削除してみます。削除のリンクをクリックします。確認メッセージが表示されますので、『OK』ボタンをクリックすると、データが削除されます。

本日は以上です。

 

-CakePHP
-

Copyright© WinRoad徒然草 , 2018 All Rights Reserved Powered by AFFINGER5.