【问题标题】:How to orderBy() after take() in Laravel Eloquent如何在 Laravel Eloquent 中的 take() 之后 orderBy()
【发布时间】:2019-07-29 21:42:20
【问题描述】:

我想在用 Laravel Eloquent 挑选最新的 5 条记录后使用orderBy

Book::orderBy('created_at', 'desc')->take(5)->orderBy('name', 'asc')->get();

但是,对于该查询,第二个 orderBy(名称)没有被执行,我只得到了由 created_at 排序的五个记录。

预期结果应该是按名称排序的 5 条最新记录。

不是 5 条有序和最新的记录。

【问题讨论】:

    标签: laravel eloquent


    【解决方案1】:

    创建包含 5 个最新记录的集合:

    $books = Book::orderBy('created_at', 'desc')->take(5)->get();
    

    对集合进行排序:

    $books = $books->sortBy('name');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-16
      • 2015-06-17
      • 2019-03-29
      • 2019-05-14
      • 2016-10-12
      • 2016-08-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多