gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 16:29:34 25 4
gpt4 key购买 nike

我需要对结果进行分页并使用 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 按模型的附加属性进行排序。而且我还可以使用分页。

关于laravel - 如何在 Laravel 中对结果进行分页和排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53384956/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com