ZendFramework

Zend FrameworkのZend_Dbでレコードの削除

更新日:

今日は、Zend_Dbでレコードの削除について調べてみます。これも更新とほとんど変わらないと思います。すなわち、IDのパラメータを渡してアクセスするとそのIDレコードが表示され、内容を確認してから送信すると削除するという方法を取ります。

1) 『views/scripts/test』フォルダのedit.phtmlファイルをコピーして、ファイル名をdel.phtmlに変更します。下記のように記述します。

<div class="content">
 <p>レコードの削除</p>
 <p>このレコードを削除します。よろしければ削除ボタンを押して下さい。</p>
 <form id="form1" name="form1" method="post" action="">
 <table width="90%" border="1">
 <tr>
 <th width="40%" scope="row">Title</th>
 <td width="60%"><?=$this->result['title']?></td>
 </tr>
 <tr>
 <th scope="row">Content</th>
 <td><?=$this->result['content']?></td>
 </tr>
 <tr>
 <th colspan="2" scope="row"><input type="submit" name="button" id="button" value="削除" /></th>
 </tr>
 </table>
 </form>
 </div>

2) 続いて、TestControllerに『delAction』メソッドを追加します。

public function delAction(){
 if($this->getRequest()->isPost()){
 $id=$this->getRequest()->getParam('id');
 $this->db->delete('dvd_collections',"id={$id}");
 $this->_redirect('test/index');
}else{
 $id=$this->getRequest()->getParam('id')*1;
 if($id <= 0){
 throw new Zend_Exception('レコードのIDが見つかりません');
 }
 $select=$this->db->select()->from('dvd_collections')->where("id={$id}");
 $result=$this->db->fetchRow($select);
 $this->view->assign('result',$result);
 }
 }

3) ブラウザから『http://zend.winroad.info/test/del/id/42』と入力し、前回更新したテスト入力のデータを削除してみます。

4) 指定したデータが削除されました。

本日は以上です。

-ZendFramework
-

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