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()进行排序和分页
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 1. 使用 dayjs 或 date-fns 等日期处理库。这些库提供更加友好和稳定的日期排序方法,可以避免直接使...
- 对于开发网站的同学来说,分页与排序是十分蛋疼又不得不做的事情,spring-data-jpa当然也考虑到了这一点,...
- 概观 在处理大量数据时,延迟处理通常是必不可少的。即使服务返回大量数据,消费者也不太可能使用它。考虑一个购物网站,...
- 今天项目查询ES遇到一个问题,用search_after排序的相关问题。生产环境查询报Data too large...