use Illuminate\Support\Collection;
use Illuminate\Pagination\LengthAwarePaginator;
use Illuminate\Pagination\Paginator;
// ...
// 创建一个示例集合
$collection = collect([
['name' => 'John', 'age' => 30],
['name' => 'Jane', 'age' => 25],
['name' => 'Dave', 'age' => 40],
// ...
]);
// 排序和分页操作
$sortBy = 'age'; // 排序字段
$sortOrder = 'asc'; // 排序顺序,可以是 'asc' 或 'desc'
$perPage = 10; // 每页显示的数量
$page = Paginator::resolveCurrentPage('page'); // 获取当前页码,默认为 'page'
// 排序
$sortedCollection = $collection->sortBy($sortBy, SORT_REGULAR, $sortOrder === 'desc');
// 分页
$slicedData = $sortedCollection->slice(($page - 1) * $perPage, $perPage);
$paginatedCollection = new LengthAwarePaginator(
$slicedData,
$sortedCollection->count(),
$perPage,
$page,
['path' => Paginator::resolveCurrentPath()]
);
// 返回包含排序和分页后的集合数据的视图
$data = $paginatedCollection->toArray() //解析数据为数组
return view('your-view', ['data' => $paginatedCollection]);
laravel 操作collect()进行排序和分页
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- 1. 使用 dayjs 或 date-fns 等日期处理库。这些库提供更加友好和稳定的日期排序方法,可以避免直接使...
- 对于开发网站的同学来说,分页与排序是十分蛋疼又不得不做的事情,spring-data-jpa当然也考虑到了这一点,...
- 概观 在处理大量数据时,延迟处理通常是必不可少的。即使服务返回大量数据,消费者也不太可能使用它。考虑一个购物网站,...
- 今天项目查询ES遇到一个问题,用search_after排序的相关问题。生产环境查询报Data too large...