Laravel按分页下降或上升排序

时间:2017-10-06 14:26:16

标签: php laravel laravel-5

我想通过与分页一起升序或降序来执行排序

  return \App\User:: paginate($request->per_page);

我如何通过类似的东西添加排序

return \App\User:: paginate($request->per_page)-sortBy(
    $request->sort_field, $request->sort_order
  );

bur以上失败的地方

$request->sort_order //asc or desc

以上返回错误

"asort() expects parameter 2 to be integer, string given"

3 个答案:

答案 0 :(得分:1)

我无法在Laravel文档中看到您可以输入订单(DESC或ASC)的语法,试试这个:

if ($request->sort_order == 'asc') {
   return \App\User::paginate($request->per_page)->sortBy($request->sort_field); 
}
return \App\User::paginate($request->per_page)->sortByDesc($request->sort_field); 

在文档中阅读更多内容:https://laravel.com/docs/5.5/collections#method-sortby

答案 1 :(得分:1)

您可以尝试类似

的内容
User::orderBy($request->sort_field, $request->sort_order)->paginate($request->per_page);

来源:https://laracasts.com/discuss/channels/laravel/combining-paginate-with-orderby

答案 2 :(得分:0)

使用 Eloquent,您可以快速轻松地对数据进行排序和分页。

例如,我想对用户表中存在的所有用户进行排序。

//---Sort Ascending
$users = User::orderBy('id', 'ASC')->Paginate(10);
//---Sort Descending
$users = User::orderBy('id', 'DESC')->Paginate(10);