彻底删除thinkphp3.1案例blog标签的方法_php实例
本文实例讲述了彻底删除thinkphp3.1案例blog标签的方法。分享给大家供大家参考。具体方法如下:
thinkphp3.1框架中的案例blog,添加日记的同时可以添加标签tag,但仅此而已。当删除日记时,标签并没有被删除掉,从而造成think_tagged表和think_tag累积了垃圾数据。为了实现删除日记的同时也一起清理掉think_tagged表和think_tag那些过时的数据,我写了一个函数,在看下面函数时,要先弄清think_tagged表、think_tag和think_blog表的关联关系。
函数如下:
$condition['recordId'] = $recordId;//获取日记的ID
$tagged=M('Tagged');
$taggedlist= $tagged->where($condition)->select();//这里用select而不用find,因为一篇日记可能有多个标签
$taggedids=array();//声明一个数组,用来装think_tagged表的ID
$tagIds=array();//声明一个数组,用来装think_tag表的ID
foreach ($taggedlist as $key => $value) {
$tagIds[]=$value['tagId'];//获取think_tag表的ID
$taggedids[]=$value['id'];//获取think_tagged表的ID
}
//考虑到一篇日记可能有多个标签,所以这里对$tagIds作一下遍历
foreach ($tagIds as $tagIdk => $tagIdv) {
$tagId=$tagIdv;
$tag=D('Tag');
$tagvo=$tag->where('id='.$tagId)->find();//获取每个$tagId对应的一条记录
$count=intval($tagvo['count']);//获取标签的数量
if($count==1){//如果$count==1,说明这个标签仅有这篇日记所有,删掉。
$tag->where('id='.$tagId)->delete();
}elseif($count > 1){//$count > 1,说明这个标签为多篇日记所有,不能删除,所以减1。
$tag->where('id='.$tagId)->setDec('count',1);//setDec使$count减1,注意thinkphp3.1的使用方法。
}
}
//下面是删除日记存在think_tagged表里的相关数据
foreach ($taggedids as $taggedid_k => $taggedid_v) {
$tagged->where('id='.$taggedid_v)->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_'));
}
}
}
这个函数是放在Examples\Blog\Lib\Action\PublicAction.class.php这个公共类里的,BlogAction.class.php类继承了其删除函数,我们就把deltag($recordId)函数放在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_'));
}
}
}
以上只适用删除单条日记的情况,当然如要批量删除日记,只要遍历删除blog的ID同时调用一下deltag($recordId)就OK了。
希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

小红书笔记怎么删除?在小红书APP中是可以编辑笔记的,多数的用户不知道小红书笔记如何的删除,接下来就是小编为用户带来的小红书笔记删除方法图文教程,感兴趣的用户快来一起看看吧!小红书使用教程小红书笔记怎么删除1、首先打开小红书APP进入到主页面,选择右下角【我】进入到专区;2、之后在我的专区,点击下图所示的笔记页面,选择要删除的笔记;3、进入到笔记页面,右上角【三个点】;4、最后下方会展开功能栏,点击【删除】即可完成。

1、首先,拉黑再删除永久加不上是假的,拉黑删除后想要再加对方,只要对方同意即可。2、如果用户将某人拉黑,对方将无法向用户发送消息、查看用户的朋友圈以及与用户进行通话。3、拉黑并不意味着将对方从用户的微信联系人列表中删除。4、如果用户在拉黑后又将对方从用户的微信联系人列表中删除,那么在删除后是没有办法恢复的。5、如果用户想再次添加对方为好友,需要对方同意并重新添加用户。

小红书作为一家流行的社交电商平台,吸引了大量用户分享生活点滴和购物心得。有时候我们可能会不经意发布一些不合适的内容,这时候需要及时删除,这样可以更好地维护个人形象或者遵守平台规定。一、小红书发布怎么删除?1.登录小红书账号,进入个人主页。2.在个人主页下方,找到“我的创作”选项,点击进入。3.在“我的创作”页面,你可以看到所有发布的内容,包括笔记、视频等。4.找到需要删除的内容,点击右侧的“...”按钮。5.在弹出的菜单中,选择“删除”选项。6.确认删除后,该条内容将从你的个人主页和公共页面消失

运行 ThinkPHP 项目需要:安装 Composer;使用 Composer 创建项目;进入项目目录,执行 php bin/console serve;访问 http://localhost:8000 查看欢迎页面。

1、打开抖音app,点击界面底部的【消息】,点击需要删除的聊天对话入口。2、长按任意一条聊天记录,点击【多选】,勾选想要删除的聊天记录。3、点击右下角的【删除】按钮,在弹出的窗口中选择【确认删除】即可将这些记录永久删除。

小红书作为一款热门的社交电商平台,用户之间的互动评论是平台中不可或缺的交流方式。有时候,我们可能会发现自己的评论被其他人删除,这种情况可能会让我们感到困惑。一、小红书把别人评论删了怎么找回?当发现自己的评论被删除时,首先可以尝试在平台上直接搜索相关的帖子或商品,查看是否还能找到该评论。如果评论被删除后仍然显示,那么可能是被原帖主删除的,这时候可以尝试联系原帖主,询问其删除评论的原因,并请求恢复评论。如果评论已经被完全删除且无法在原帖上找到,那么在平台上恢复评论的机会相对较小。可以尝试使用其他途径

在抖音上,用户不仅可以分享自己的生活点滴和才艺,还可以和其他用户互动交流。在这个过程中,有时候我们需要向其他用户发送文件,比如图片、视频等。那么,在抖音上如何发给别人文件呢?一、抖音上如何发给别人文件?1.打开抖音,进入你想要发送文件的聊天界面。2.点击聊天界面中的“+”号,选择“文件”。3.在文件选项中,你可以选择发送图片、视频、音频等文件。选择你想要发送的文件后,点击“发送”。4.等待对方接受你的文件,一旦对方接受,文件就会传输成功。二、抖音上发给别人文件怎么删除?1.打开抖音,进入你发送文

ThinkPHP 拥有多个版本,针对不同 PHP 版本而设计。主要版本包括 3.2、5.0、5.1 和 6.0,而次要版本用于修复 bug 和提供新功能。当前最新稳定版本为 ThinkPHP 6.0.16。在选择版本时,需考虑 PHP 版本、功能需求和社区支持。建议使用最新稳定版本以获得最佳性能和支持。
