Laravel 4: как «заказывать», используя Eloquent ORM

Простой вопрос – как мне упорядочить по «id», спускающемуся в Laravel 4.

Соответствующая часть моего контроллера выглядит так:

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

Насколько я понимаю, вы используете эту строку:

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

Но как это соотносится с моим выше кодом?

Если вы используете пост в качестве модели (без инъекции зависимостей), вы также можете:

 $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();