如何在Laravel中对结果进行分页和排序?

乔希

我需要对结果进行分页并使用sortBy()对其进行排序,而不会丢失分页链接。我还需要使用一种资源来返回结果。

$sorted = Model::paginate(10)->sortBy('name');

$results = \App\Http\Resources\MyResource::collection($sorted);

这样做会破坏分页链接(我只得到数据部分)。

$paginated = Model::paginate(10);

$results = \App\Http\Resources\MyResource::collection($paginated);

return $results->sortBy('name');

这也不起作用。有任何想法吗?

乔希

我已经通过以下解决方案解决了问题:

$sorted = Model::get()
    ->sortBy('example_function')  //appended attribute
    ->pluck('id')
    ->toArray();

$orderedIds = implode(',', $sorted);

$result = DB::table('model')
    ->orderByRaw(\DB::raw("FIELD(id, ".$orderedIds." )"))
    ->paginate(10);

我将example_function属性附加到模型中,以供sortBy使用。通过此解决方案,我能够使用orderBy对模型的附加属性进行排序。而且我也可以使用分页。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Laravel,如何对循环数组进行排序和分页

如何在PHP中对结果进行排序?

如何在同一页面中对多个查询集进行分页和排序?

如何在Python中对Elasticsearch DSL的结果进行分页

如何在Django中对搜索结果进行分页?

如何在laravel 5.6中使用hasMany对所有记录进行分页和显示?

如何在 Laravel 中对集合和查询构建器进行分页

在Laravel中对分页变量进行排序

如何在Laravel QueryBuilder / MySQL Spatial软件包中按距离对查询结果进行排序?

如何在MySQL中按日期对相关结果进行分组和排序

如何在弹性搜索中对多个索引的结果进行排序和限制

通过ajax更新时,如何在ASP.NET MVC WebGrid中持久地进行排序和分页?

如何在 Laravel api 资源中对集合进行分页?

如何在Laravel中通过$ category-> companies进行分页

如何在Laravel 5中对合并的集合进行分页?

如何在Laravel 5.5中对表进行分页?

如何在mongodb中对查找结果进行排序

如何在 SQLAlchemy 中按降序对结果进行排序?

如何在sphinx / php中对结果进行排序?

如何在数据日志查询中对结果进行排序

如何在 Prolog 中对结果列表进行排序?

如何在Sequelize中对查询结果进行排序?

如何在mysql中的union子句中对结果进行排序

如何在 oracle 中的“IN”位置对结果数据进行排序

使用分页在php中对mysql结果进行排序

如何在Laravel中同时使用get和分页

如何在 Laravel 中同时使用“分页()”和清单?

如何在Laravel中进行分页?

如何在mongodb中“排序”和“限制”结果?