麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > ThinkPHP > 正文

給thinkphp3.1案例blog添加一個刪除的標簽的方法

2024-09-09 15:19:50
字體:
來源:轉載
供稿:網友

thinkphp3.1框架中的案例blog,添加日記的同時可以添加標簽tag,但僅此而已,當刪除日記時,標簽并沒有被刪除掉,從而造成think_tagged表和think_tag累積了垃圾數據,為了實現刪除日記的同時也一起清理掉think_tagged表和think_tag那些過時的數據,我寫了一個函數,在看下面函數時,要先弄清think_tagged表、think_tag和think_blog表的關聯關系.

函數如下:

  1. public function deltag($recordId){      
  2.     
  3.       $condition['recordId'] = $recordId;//獲取日記的ID 
  4.           
  5.      $tagged=M('Tagged'); 
  6.      $taggedlist$tagged->where($condition)->select();//這里用select而不用find,因為一篇日記可能有多個標簽 
  7.             
  8.    $taggedids=array();//聲明一個數組,用來裝think_tagged表的ID 
  9.             
  10.     $tagIds=array();//聲明一個數組,用來裝think_tag表的ID 
  11.             
  12.     foreach ($taggedlist as $key => $value) { 
  13.             
  14.    $tagIds[]=$value['tagId'];//獲取think_tag表的ID 
  15.                    
  16.    $taggedids[]=$value['id'];//獲取think_tagged表的ID 
  17.                } 
  18.  //考慮到一篇日記可能有多個標簽,所以這里對$tagIds作一下遍歷 
  19.   foreach ($tagIds as $tagIdk => $tagIdv) { 
  20.             
  21.    $tagId=$tagIdv;  
  22.                   
  23.    $tag=D('Tag'); 
  24.                    
  25.    $tagvo=$tag->where('id='.$tagId)->find();//獲取每個$tagId對應的一條記錄 
  26.            
  27.   $count=intval($tagvo['count']);//獲取標簽的數量 
  28.            
  29.   if($count==1){//如果$count==1,說明這個標簽僅有這篇日記所有,刪掉。 
  30.                    
  31.   $tag->where('id='.$tagId)->delete(); 
  32.                     
  33.   }elseif($count > 1){//$count > 1,說明這個標簽為多篇日記所有,不能刪除,所以減1。 
  34.                  
  35.   $tag->where('id='.$tagId)->setDec('count',1);//setDec使$count減1,注意thinkphp3.1的使用方法。 
  36.                 
  37.    } 
  38.  } 
  39.  //下面是刪除日記存在think_tagged表里的相關數據 
  40.    foreach ($taggedids as $taggedid_k => $taggedid_v) { 
  41.               
  42.     $tagged->where('id='.$taggedid_v)->delete(); 
  43.                    
  44.     } 
  45.             
  46.             
  47.  } 

函數寫好了,怎么使用呢?方法很簡單,我們來看一下刪除日記的函數:

  1. public function delete() { 
  2.         //刪除指定記錄 
  3.         $model = M("Blog"); 
  4.         if (!emptyempty($model)) { 
  5.             $id = $_REQUEST[$model->getPk()]; 
  6.             if (isset($id)) { 
  7.  
  8.                 if ($model->where("id=" . $id)->delete()) { 
  9.                     if ($this->__get('ajax')) { 
  10.                         $this->ajaxReturn($id, L('_DELETE_SUCCESS_'), 1); 
  11.                     } else { 
  12.                         $this->success(L('_DELETE_SUCCESS_')); 
  13.                     } 
  14.                 } else { 
  15.                     $this->error(L('_DELETE_FAIL_')); 
  16.                 } 
  17.             } else { 
  18.                 $this->error(L('_ERROR_ACTION_')); 
  19.             } 
  20.         } 
  21.     }  

這個函數是放在Examples/Blog/Lib/Action/PublicAction.class.php這個公共類里的,BlogAction.class.php類繼承了其刪除函數,我們就把deltag($recordId)函數放在delete() 里調用,如下:

  1. public function delete() { 
  2.         //刪除指定記錄 
  3.         $model = M("Blog"); 
  4.         if (!emptyempty($model)) { 
  5.             $id = $_REQUEST[$model->getPk()]; 
  6.             if (isset($id)) { 
  7.             $recordId=$id
  8.              $this->deltag($recordId); 
  9.                 if ($model->where("id=" . $id)->delete()) { 
  10.                     if ($this->__get('ajax')) { 
  11.                         $this->ajaxReturn($id, L('_DELETE_SUCCESS_'), 1); 
  12.                     } else { 
  13.                         $this->success(L('_DELETE_SUCCESS_')); 
  14.                     } 
  15.                 } else { 
  16.                     $this->error(L('_DELETE_FAIL_')); 
  17.                 } 
  18.             } else { 
  19.                 $this->error(L('_ERROR_ACTION_')); 
  20.             } 
  21.         } 
  22.     } 

以上只適用刪除單條日記的情況,當然如要批量刪除日記,只要遍歷刪除blog的ID同時調用一下deltag($recordId)就OK了.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 98色视频 | 77成人影院| 曰批全过程40分钟免费视频多人 | 一区二区三区在线观看视频 | 国产98色在线 | 国产一区在线视频观看 | 欧美成人免费在线视频 | 国产激情视频在线 | 99精品在线观看 | 亚洲码无人客一区二区三区 | 久久久成人免费视频 | 亚州精品天堂中文字幕 | 久久国产精品影视 | 国产午夜亚洲精品理论片大丰影院 | 免费观看一级黄色片 | 视频一区二区三区免费观看 | 中文字幕在线免费播放 | 欧美一区二区三区中文字幕 | 中文字幕亚洲视频 | 精品亚洲成a人在线观看 | 欧美 中文字幕 | 欧美国产二区 | 国产精品一区自拍 | 国产精品区一区二区三区 | av在线免费看网站 | 国产精选在线 | 色网站免费观看 | 天天躁狠狠躁夜躁2020挡不住 | 一级电影在线观看 | 成人做爰www免费看 欧美精品免费一区二区三区 | 成人一区二区三区在线 | 久久国产精品二国产精品 | 免费黄色欧美视频 | 国产成年免费视频 | 国产精品久久久久久久久久尿 | 久久久久久久久久网站 | 色婷婷久久一区二区 | 欧美精品一区二区视频 | 欧美一级全黄 | 日韩一级成人 | 欧美亚洲另类在线 |