Простой вопрос – как мне упорядочить по «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();