首页 文章

Laravel 4:如何使用Eloquent ORM“排序”[重复]

提问于
浏览
138

这个问题在这里已有答案:

简单的问题 - 如何通过Laravel 4中的'id'降序排序 .

我的控制器的相关部分如下所示:

$posts = $this->post->all()

据我了解你使用这一行:

->orderBy('id', 'DESC');

但是这与我上面的代码有什么关系呢?

3 回答

  • 24

    如果您使用post作为模型(没有依赖注入),您还可以执行以下操作:

    $posts = Post::orderBy('id', 'DESC')->get();
    
  • 245

    如果您使用的是Eloquent ORM,则应考虑使用范围 . 这将使您的逻辑保持在它所属的模型中 .

    所以,在模型中你会有:

    public function scopeIdDescending($query)
    {
            return $query->orderBy('id','DESC');
    }
    

    在模型之外你会有:

    $posts = Post::idDescending()->get();
    

    更多信息:http://laravel.com/docs/eloquent#query-scopes

  • 47

    我就是这样做的 .

    $posts = $this->post->orderBy('id', 'DESC')->get();
    

相关问题