国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > PHP > 正文

徹底刪除thinkphp3.1案例blog標(biāo)簽的方法

2020-03-22 17:46:54
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
本文實(shí)例講述了徹底刪除thinkphp3.1案例blog標(biāo)簽的方法。分享給大家供大家參考。具體方法如下:thinkphp3.1框架中的案例blog,添加日記的同時(shí)可以添加標(biāo)簽tag,但僅此而已。當(dāng)刪除日記時(shí),標(biāo)簽并沒(méi)有被刪除掉,從而造成think_tagged表和think_tag累積了垃圾數(shù)據(jù)。為了實(shí)現(xiàn)刪除日記的同時(shí)也一起清理掉think_tagged表和think_tag那些過(guò)時(shí)的數(shù)據(jù),我寫(xiě)了一個(gè)函數(shù),在看下面函數(shù)時(shí),要先弄清think_tagged表、think_tag和think_blog表的關(guān)聯(lián)關(guān)系。函數(shù)如下:
復(fù)制代碼 代碼如下:html' target='_blank'>public function deltag($recordId){

$condition['recordId'] = $recordId;//獲取日記的ID

$tagged=M('Tagged');
$taggedlist= $tagged- where($condition)- select();//這里用select而不用find,因?yàn)橐黄沼浛赡苡卸鄠€(gè)標(biāo)簽

$taggedids=array();//聲明一個(gè)數(shù)組,用來(lái)裝think_tagged表的ID

$tagIds=array();//聲明一個(gè)數(shù)組,用來(lái)裝think_tag表的ID

foreach ($taggedlist as $key = $value) {

$tagIds[]=$value['tagId'];//獲取think_tag表的ID

$taggedids[]=$value['id'];//獲取think_tagged表的ID
}
//考慮到一篇日記可能有多個(gè)標(biāo)簽,所以這里對(duì)$tagIds作一下遍歷
foreach ($tagIds as $tagIdk = $tagIdv) {

$tagId=$tagIdv;

$tag=D('Tag');

$tagvo=$tag- where('id='.$tagId)- find();//獲取每個(gè)$tagId對(duì)應(yīng)的一條記錄

$count=intval($tagvo['count']);//獲取標(biāo)簽的數(shù)量

if($count==1){//如果$count==1,說(shuō)明這個(gè)標(biāo)簽僅有這篇日記所有,刪掉。

$tag- where('id='.$tagId)- delete();

}elseif($count 1){//$count 1,說(shuō)明這個(gè)標(biāo)簽為多篇日記所有,不能刪除,所以減1。

$tag- where('id='.$tagId)- setDec('count',1);//setDec使$count減1,注意thinkphp3.1的使用方法。

}
}
//下面是刪除日記存在think_tagged表里的相關(guān)數(shù)據(jù)
foreach ($taggedids as $taggedid_k = $taggedid_v) {

$tagged- where('id='.$taggedid_v)- delete();

}
}函數(shù)寫(xiě)好了,怎么使用呢?方法很簡(jiǎn)單。
我們來(lái)看一下刪除日記的函數(shù)
復(fù)制代碼 代碼如下:public function delete() {
//刪除指定記錄
$model = M("Blog");
if (!empty($model)) {
$id = $_REQUEST[$model- getPk()];
if (isset($id)) {

if ($model- where("id=" . $id)- delete()) {
if ($this- __get('ajax')) {
$this- ajaxReturn($id, L('_DELETE_SUCCESS_'), 1);
} else {
$this- success(L('_DELETE_SUCCESS_'));
}
} else {
$this- error(L('_DELETE_FAIL_'));
}
} else {
$this- error(L('_ERROR_ACTION_'));
}
}
}這個(gè)函數(shù)是放在Examples/Blog/Lib/Action/PublicAction.class.php這個(gè)公共類(lèi)里的,BlogAction.class.php類(lèi)繼承了其刪除函數(shù),我們就把deltag($recordId)函數(shù)放在delete() 里調(diào)用,如下:
復(fù)制代碼 代碼如下:public function delete() {
//刪除指定記錄
$model = M("Blog");
if (!empty($model)) {
$id = $_REQUEST[$model- getPk()];
if (isset($id)) {
$recordId=$id;
$this- deltag($recordId);
if ($model- where("id=" . $id)- delete()) {
if ($this- __get('ajax')) {
$this- ajaxReturn($id, L('_DELETE_SUCCESS_'), 1);
} else {
$this- success(L('_DELETE_SUCCESS_'));
}
} else {
$this- error(L('_DELETE_FAIL_'));
}
} else {
$this- error(L('_ERROR_ACTION_'));
}
}
}以上只適用刪除單條日記的情況,當(dāng)然如要批量刪除日記,只要遍歷刪除blog的ID同時(shí)調(diào)用一下deltag($recordId)就OK了。希望本文所述對(duì)大家基于ThinkPHP框架的PHP程序設(shè)計(jì)有所幫助。PHP教程

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 太原市| 黑龙江省| 焦作市| 修水县| 蓬莱市| 英山县| 越西县| 平湖市| 凤凰县| 岫岩| 通化县| 罗山县| 东乌| 庐江县| 武威市| 河北区| 华容县| 卫辉市| 金昌市| 玉环县| 右玉县| 松潘县| 怀远县| 榆林市| 陈巴尔虎旗| 樟树市| 吴旗县| 万盛区| 乌审旗| 广宗县| 墨竹工卡县| 崇义县| 安宁市| 赞皇县| 开平市| 句容市| 巩留县| 十堰市| 隆德县| 比如县| 许昌县|