简单的问题 - 我如何在 Laravel 4 中按 'id' 降序排序。
我的控制器的相关部分如下所示:
$posts = $this->post->all()
据我了解,您使用此行:
->orderBy('id', 'DESC');
但这与我上面的代码有什么关系呢?
如果你使用 post 作为模型(没有依赖注入),你也可以这样做:
$posts = Post::orderBy('id', 'DESC')->get();
如果你使用的是 Eloquent ORM,你应该考虑使用作用域。这会将您的逻辑保留在它所属的模型中。
因此,在模型中,您将拥有:
public function scopeIdDescending($query)
{
return $query->orderBy('id','DESC');
}
在模型之外,您将拥有:
$posts = Post::idDescending()->get();
更多信息: http: //laravel.com/docs/eloquent#query-scopes
这就是我将如何去做。
$posts = $this->post->orderBy('id', 'DESC')->get();