243

简单的问题 - 我如何在 Laravel 4 中按 'id' 降序排序。

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

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

据我了解,您使用此行:

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

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

4

3 回答 3

453

如果你使用 post 作为模型(没有依赖注入),你也可以这样做:

$posts = Post::orderBy('id', 'DESC')->get();
于 2013-08-17T13:13:57.493 回答
67

如果你使用的是 Eloquent ORM,你应该考虑使用作用域。这会将您的逻辑保留在它所属的模型中。

因此,在模型中,您将拥有:

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

在模型之外,您将拥有:

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

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

于 2013-12-11T12:45:05.467 回答
35

这就是我将如何去做。

$posts = $this->post->orderBy('id', 'DESC')->get();
于 2013-07-09T16:24:47.437 回答