1、在data中设置评论文章的id以及,当前页(也可以设置一个每页显示条数),我这边是后端写死的条数
data{
discuss:'',
id:'',
movie_id:'',
page:1,
}
2、下拉事件中调用接口判断参数,实现下拉加载的数据
onReachBottom: function () {
let page = this.data.page + 1
let movie_id = this.data.movie_id
let that = this
let oldDiscuss = this.data.discuss
let token = wx.getStorageSync('token')
//判断pages+1 是否大于总页数,如果大于就提示,不大于接着访问
if(page>that.data.pageSum){
wx.showToast({
title: '人家也是有底限的',
duration:1500,
icon:'error'
)}
return
}
wx.request({
url: '',
method:'POST',
header:{token},
data:{movie_id,page},
success:res=>{
if (res.data.error_code=='-1') {
wx.switchTab({
url: '/pages/cinema/cinema',
})
wx.showToast({
title: '展示失败',
duration:1500,
icon:'error'
})
return
}else{
that.setData({
page,
//把数据追加到原来的数组中
discuss:oldDiscuss.concat(res.data.data.data)
})
}
}
})
},
3、控制器代码
public function discussList(Request $request){
//电影id
try {
$movie_id = $request->post('movie_id');
//当前页码数
$page = $request->post('page',1);
//偏移量
$pageSize = ($page-1)*5;
if (!is_numeric($movie_id)){
return response()->json(['error_code'=>'-1','msg'=>'参数不正确','data'=>null]);
}
//总条数
$count = count(DiscussModel::with('userInfo')->where('movie_id',$movie_id)->get()->toArray());
//向上取整
$pageSum = ceil($count%5);
$data = DiscussModel::with('userInfo')->where('movie_id',$movie_id)->where('id','>',$pageSize)->paginate(5);
return response()->json(['error_code'=>0,'msg'=>'评论列表','data'=>$data,'pageSum'=>$pageSum]);
}catch (\Exception $e){
return response()->json(['error_code'=>'-1','msg'=>$e->getMessage(),'data'=>null]);
}
}