【问题标题】:orderby doesn't work in Laravel Eloquent advanced queryorderby 在 Laravel Eloquent 高级查询中不起作用
【发布时间】:2014-05-21 00:50:58
【问题描述】:

我想在 Laravel Eloquent 高级查询中使用 orderby 对我的数据进行排序。这是我的代码:

  $users = User::where(function($query){

       $query->orderBy('created_at', 'DESC');

  })->get()->toArray();
  var_dump($users);

但它不起作用。相反,如果我像这样使用 orderby:

  $users = User::orderBy('created_at', 'DESC')->get()->toArray();
  var_dump($users);

有效。

任何人都可以建议如何使 orderby 适用于高级查询吗?谢谢

【问题讨论】:

  • 当你在类似的“函数”中有where 查询时,它实际上是一个sub 查询,因此对结果进行排序不会影响父查询。好吧,实际上这只是一个猜测,但听起来是对的:P

标签: sql laravel-4 eloquent


【解决方案1】:

我尝试了各种不同的组合,发现 orderBy 必须在查询函数之外(或者应该是最后一个?)。这是正在运行的代码:

$users = User::where(function($query){

   // ......

})->orderBy('created_at', 'DESC')->get()->toArray();
var_dump($users);

【讨论】:

  • 我也有同样的经历
猜你喜欢
  • 2021-08-16
  • 1970-01-01
  • 2021-08-14
  • 2016-03-18
  • 2018-12-28
  • 2014-11-05
  • 2016-10-12
  • 2020-03-15
  • 1970-01-01
相关资源
最近更新 更多