Laravel 4:如何使用 Eloquent ORM“排序依据”

2022-08-30 06:11:06

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

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

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

据我所知,您使用这行:

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

但是,这与我上面的代码如何契合呢?


答案 1

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

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

答案 2

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

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

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

在模型之外,您将拥有:

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

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


推荐