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

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

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

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

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

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

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

Ответ 1

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

$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

Ответ 3

Вот как я это сделаю.

$posts = $this->post->orderBy('id', 'DESC')->get();