Laravel 按分页降序或升序排序

Posted

技术标签:

【中文标题】Laravel 按分页降序或升序排序【英文标题】:Laravel sort by descending or ascending with pagination 【发布时间】:2018-03-18 09:28:30 【问题描述】:

我想通过分页进行升序或降序排序

  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"

【问题讨论】:

可能重复:***.com/questions/17429427/… @teeyo 您的重复引用会引发错误 检查我的答案:) 【参考方案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

【讨论】:

更新 -sortBy 为 ->sortBy 否则上面会抛出错误 现在可以了,谢谢,但上面的 Ron 回答提供了更简洁的语法 最重要的是你得到了答案,这就是 SO 的意义所在;)【参考方案2】:

你可以试试

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

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

【讨论】:

【参考方案3】:

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

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

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

【讨论】:

以上是关于Laravel 按分页降序或升序排序的主要内容,如果未能解决你的问题,请参考以下文章

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

php之快速入门学习-11(数组排序)

在Vue js中单击每个表头时如何显示升序和降序箭头图像?

如何将字符串数组转换为整数数组,升序,降序,bubble,inputarea,outputarea

如何实现JSP列表升序或者降序

分页和排序