【问题标题】:How Can I Understand Eloquent orderBy() Works?我如何理解 Eloquent orderBy() 的工作原理?
【发布时间】:2019-01-27 12:49:48
【问题描述】:

请帮助我了解 orderBy 的工作原理。看下面的代码。

$posts = Post::orderBy('title','asc')->get();

当我使用orderBy('title','asc') 时,是否意味着我收到了所有的 Post 记录并将它们放入

$posts 然后按标题升序排列?我对orderBy() 感到困惑。我记得

当我们想要接收所有记录时,我们应该在 Post 之后输入“all”,那么orderBy() 是如何做到的?

【问题讨论】:

  • 您将收到按标题升序排列的所有帖子。
  • 当您不向查询中添加任何内容时使用all(),否则您将使用get()
  • 它根据它们的字母或数字编号以任何指定的方式工作,例如如果 great,anger,deduce 是按 asc 排序的,它会是angered,dedduce then great
  • orderBy发生在数据库层,排序后的结果会存储在$post

标签: laravel eloquent laravel-query-builder


【解决方案1】:

确切地说,orderBy 方法允许您按给定列对查询结果进行排序。 如果使用 orderBy,您的查询应如下所示:

$posts = Post::orderBy('title','asc')->get();

使用 all() 时,您的查询将是:

$posts = Post::all();

【讨论】:

    【解决方案2】:

    是的,正是你所说的。

    orderBy 方法允许您按给定列对查询结果进行排序。 orderBy 方法的第一个参数应该是您希望排序的列,而第二个参数控制排序的方向,可以是 asc 或 desc:

    $users = DB::table('users')
                    ->orderBy('name', 'desc')
                    ->get();
    

    查看docs 了解更多信息

    【讨论】:

      猜你喜欢
      • 2021-08-15
      • 2011-06-10
      • 2014-04-08
      • 2012-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多