Laravel 4: how to "order by" using Eloquent ORM [duplicate]
Simple question - how do I order by 'id' descending in Laravel 4.
The relevant part of my controller looks like this:
$posts = $this->post->all()
As I understand you use this line:
->orderBy('id', 'DESC');
But how does that fit in with my above code?
Solution 1:
If you are using post as a model (without dependency injection), you can also do:
$posts = Post::orderBy('id', 'DESC')->get();
Solution 2:
If you are using the Eloquent ORM you should consider using scopes. This would keep your logic in the model where it belongs.
So, in the model you would have:
public function scopeIdDescending($query)
{
return $query->orderBy('id','DESC');
}
And outside the model you would have:
$posts = Post::idDescending()->get();
More info: http://laravel.com/docs/eloquent#query-scopes
Solution 3:
This is how I would go about it.
$posts = $this->post->orderBy('id', 'DESC')->get();