在 Laravel 中,当我使用长度感知分页时,假设我位于数据集的最后一页,并且删除了该页面上的所有记录,Laravel 将为我返回一个空数据集,因为
page
查询参数引用不存在的偏移量的页码,即使可能仍然有其他可用记录。
用户控制器.php:
...
$pager = \App\Models\User::paginate(10);
return view('user_list', concat($pager));
user_list.blade.php:
@foreach($pager->data() as $user)
<div>
<span>{{$user->name}}</span>
<a href="{{route ('user.destroy', $user->id)}}">Delete</a>
</div>
@endforeach
在这种情况下:
您可以使用 isEmpty() 方法检查结果,然后重定向到最后一页
$pager = \App\Models\User::paginate(10);
// Delete records
if ($pager->isEmpty()) {
// Redirect to previous page
return redirect()->to($pager->previousPageUrl());
}
您还可以传递 $pager->isEmpty() 的结果来显示当前偏移量/页面没有更多记录的消息。