ThinkPHP3.2 实现浏览量和点赞量,每次访问页面浏览量+1以及每个登录用户只能对同一篇文章点赞一次

笔者最近帮许多人做毕设项目,什么基于SSH的招聘系统、SSM的商城系统,基于TP的博客系统...,忙得一批。其中TP项目中有一个实现浏览量和点赞量的功能需求。所谓怎么简单怎么来,在这里说一下思路,记录一下这个小技巧。

首先数据表有三个,分别为是article、pros、user表,bo_是表前缀。

bo_user数据表概要设计

ThinkPHP3.2 实现浏览量和点赞量,每次访问页面浏览量+1以及每个登录用户只能对同一篇文章点赞一次_第1张图片

bo_article数据表概要设计

ThinkPHP3.2 实现浏览量和点赞量,每次访问页面浏览量+1以及每个登录用户只能对同一篇文章点赞一次_第2张图片

bo_pros数据表概要设计

ThinkPHP3.2 实现浏览量和点赞量,每次访问页面浏览量+1以及每个登录用户只能对同一篇文章点赞一次_第3张图片

其中article表的字段pv是浏览量,pros是点赞量。pros表的user_id关联user表的uid,obj_id关联article表的a_id

然后当进入随便一篇文章详情页面,前端代码如下:

ThinkPHP3.2 实现浏览量和点赞量,每次访问页面浏览量+1以及每个登录用户只能对同一篇文章点赞一次_第4张图片

后端代码如下:

ThinkPHP3.2 实现浏览量和点赞量,每次访问页面浏览量+1以及每个登录用户只能对同一篇文章点赞一次_第5张图片

此为浏览量+1,进入文章详情页就是访问article方法,然后再通过模板赋值显示。

ThinkPHP3.2 实现浏览量和点赞量,每次访问页面浏览量+1以及每个登录用户只能对同一篇文章点赞一次_第6张图片

此为ajax点赞的请求地址,pros方法。

最后效果如下: 

ThinkPHP3.2 实现浏览量和点赞量,每次访问页面浏览量+1以及每个登录用户只能对同一篇文章点赞一次_第7张图片

网站首页遍历全部文章。

ThinkPHP3.2 实现浏览量和点赞量,每次访问页面浏览量+1以及每个登录用户只能对同一篇文章点赞一次_第8张图片

在文章详情界面,用户点赞,会弹出消息窗口,自动刷新该页面,此时pros表已新增一条文章id和用户id的记录,article表的该列pros值也+1。

ThinkPHP3.2 实现浏览量和点赞量,每次访问页面浏览量+1以及每个登录用户只能对同一篇文章点赞一次_第9张图片

当用户再点赞时,提示不能再点赞。

你可能感兴趣的:(PHP,ThinkPHP)