美文网首页
laravel 操作collect()进行排序和分页

laravel 操作collect()进行排序和分页

作者: 大萝卜2022 | 来源:发表于2023-10-25 17:22 被阅读0次

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()进行排序和分页

      本文链接:https://www.haomeiwen.com/subject/miweidtx.html