今天的笔记
1.给后台加代码,让前端页面按顺序(从大到小或从小到大)排序
sortBy(‘id’)->values() 是排序的方法从小到大 sortBy(‘放要按那个字段排列的字段名’);
sortByDesc(‘id’)->values() 是排序的方法从大到小 sortBy(‘放要按那个字段排列的字段名’);
$res= Post::all()->sortBy('id')->values();
2.分页查询
2.1 skip 与 take的用法
规定查询的条数
skip(0-9)->take(0-9)->get(); skip是跳过前几条,take是查询几条信息
$res=Post::skip(5)->take(2)->get();
//意思就是查询表中第5条往后2条数据(不包括第5条)
2.2分页逻辑
第一页显示5条是数据的话那么第二页就应该从第6条数据开始显示,第三页就应该从第11条开始显示,这个有一个规律:就是页码-1固定显示的数据条数。 skip的参数值()=页码-1固定显示的数
//定义一个参数
$page=页码 //不能是固定的应该是变化的
$pageSize=每行显示的行数 //可以是固定的
skip的参数值=($page-1)-$pageSize
take的参数=$pageSize
获取总页数
如果能除进的话执行
$count /
t
h
i
s
−
>
p
a
g
e
S
i
z
e
如
果
不
能
除
进
执
行
f
l
o
o
r
(
this->pageSize 如果不能除进执行 floor(
this−>pageSize如果不能除进执行floor(count / $this->pageSize)+1
$this->pageCount = $count % $this->pageSize == 0 ?$count / $this->pageSize : floor($count / $this->pageSize)+1;
下一步渲染页码
用动态生成的按钮把上面的注释了,然后把pre追加到他的父元素上
function loadPage(pageCount){
var pre=`<li>
<a href="#" aria-label="Previous">
<span aria-hidden="true">«</span>
</a>
</li>`;
$(".pagination").append(pre);
下一步
为动态创建的分页超链接添加单机事件
$('.pagination').on('click','li',function(event){
//阻止默认行为
event.preventDefault();
})
按照逻辑写这是前端的代码
$('.pagination').on('click','li',function(event){
//阻止默认行为
event.preventDefault();
//改变page的值
page=$(this).data('page');
loadData();
})
后端代码
private $pageSize=5;
private $pageCount=0;
//获取所有文章信息
public function index(){
//排序
// sortBy('id')->values() 是排序的方法从小向大排 sortBy('放要按那个字段查询的字段名')
// sortByDesc('id')->values() 是排序的方法从小向大排 sortBy('放要按那个字段查询的字段名')
// $res=Post::all()->sortByDesc('id')->values(); 倒序排列
//显示全部数据$res=Post::all();
// $res=Post::all()->sortBy('id')->values();
//规定查询的条数
//skip(0-9)->take(0-9)->get(); skip是跳过前几条 take是查询几条
// 实现分页效果
// $page=页码
// $pageSize=每行显示的行数
// $skip参数值=($page-1)*$pageSize
// $take参数值=$pageSize
$page=request('page');
$start=($page-1)*$this->pageSize;
$res=Post::skip($start)->take($this->pageSize)->get();
//获取总页数
$this->pageCount();
return response()->json([
'data'=>$res,
'pageCount'=>$this->pageCount
]);
}
//获取总页数
public function PageCount(){
$count=Post::all()->count();
$this->pageCount = $count % $this->pageSize == 0 ?$count / $this->pageSize : floor($count / $this->pageSize)+1;
}