Laravel 4:如何使用雄辩的ORM“order by”

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

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

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

据我所知,你使用这一行:

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

但是,这怎么符合我的上面的代码?

如果你使用post作为模型(不dependency injection),你也可以这样做:

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

如果你使用雄辩的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();