if(isset($_GET[$data_provider->pagination->pageVar])){ $currentPage = $_GET[$data_provider->pagination->pageVar]; $currentPage = intval($currentPage); $totalCount = $data_provider->totalItemCount; $pageSize = $data_provider->pagination->pageSize; $pageCount = $totalCount/$pageSize; Yii::log("totalCount/pageSize:".$pageCount); $pageCount = ceil($pageCount); Yii::log("pageCount:".$pageCount); if($pageCount>$totalCount) throw new CHttpException(404,'The requested page does not exist.'); }
其实使用yii的分页wiget时,以上代码显得多余。但在做用masonry和infinitescroll做无限滚动分页时就有用了,这个滚动分页插件有个问题就是到头的时候必须给它一个404错误或者异常它才知道到头了,而且yii不用分页wiget的时候请求大于实际已有页数时,它总是返回最后一页,也就是会一直翻页下去,也就是会重复最后一页。故有以上代码的产生。
其实我有尝试其它获取分页数据方式,但没有找到,只找到以上方法,如果有好方法的朋友不访分享交流一下。:)