博客项目目录: 请戳这里
准备
需求:用户登录后,进入用户中心页面,显示如下信息,当点击“加载更多”,会把当前页的下一页加载出来。
1.在controller层添加对应方法
根据当前账户id,在收藏表进行查询,得到收藏文章的id,再根据这些文章id从文章表取出对应的文章。
//我收藏的帖子
@ResponseBody
@GetMapping("/user/collection")
public Result collection() {
IPage page = postService.page(getPage(), new QueryWrapper<Post>()
.inSql("id", "SELECT post_id FROM user_collection where user_id = " + getProfileId())
);
return Result.success(page);
}
2.修改user下的index.ftl
- 修改收藏的帖子对应的部分
<ul class="mine-view jie-row" id="collection">
<script id="tpl-collection" type="text/html">
<li>
<a class="jie-title" href="/post/{{d.id}}" target="_blank">{{d.title}}</a>
<i>收藏于{{layui.util.timeAgo(d.created, true)}}</i>
</li>
</script>
</ul>
- 添加对应的flow方法
flow.load({
elem: '#collection'
,isAuto: false
,done: function(page, next){
var lis = [];
$.get('/user/collection?pn='+page, function(res){
layui.each(res.data.records, function(index, item){
var tpl = $("#tpl-collection").html();
laytpl(tpl).render(item, function (html) {
$("#collection .layui-flow-more").before(html);
});
});
next(lis.join(''), page < res.data.pages);
});
}
});
3.测试
进入用户中心,我收藏的帖子:
点击加载更多:
参考资料:
https://github.com/MarkerHub/eblog