Laravel 4: Как "заказать" с помощью красноречивого ORM [дубликат]


этот вопрос уже есть ответ здесь:

простой вопрос-как мне заказать " id " по убыванию в Laravel 4.

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

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

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

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

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

3 132

3 ответа:

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

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