#8 Laravel 5: Усложняем выборку

Основы Laravel 5

Усложняем выборку статей.

public function index()
{
       //$posts = Post::all();
       $posts = Post::latest('id')->get();
       return view('post.index', ['posts' => $posts]);
}

Этим кодом мы получаем список статей отсортированных по полю id в обратном порядке (DESC).
На SQL это выглядело бы так-

SELECT * FROM `posts`
ORDER BY `id` DESC


Логичнее будет отсортировать не по ID, а по дате публикации -

public function index()
{
       //$posts = Post::all();
       //$posts = Post::latest('id')->get();
       $posts = Post::latest('published_at')->get(); 
       return view('post.index', ['posts' => $posts]);
}

Теперь сделаем так чтобы выводились только те записи дата публикации которых текущая либо в прошлом. На у записи у которых дата публикации в будущем не выводилась:

use Carbon\Carbon;

......

public function index()
{
       //$posts = Post::all();
       //$posts = Post::latest('id')->get();
      //$posts = Post::latest('published_at')->get();
       $posts = Post::latest('published_at')
           ->where('published_at', '<=', Carbon::now())
           ->get();
       return view('post.index', ['posts' => $posts]);
}

Добавить отзыв (пожелание, комментарий)

Дмитрий
>Евгений

Ты прав - эту логику надо выносить. Но выносить не в модели.
Евгений
Добрый вечер. Спасибо за короткие и конкретные уроки, слежу за всеми вашими выпусками. У меня есть вопрос?! Почему вы в примерах запросы в бд пишите в контроллере, ведь по мвс запросы должны быть в моделях? Если я не путаю ничего)) не могли бы вы учесть мои пожелания? Спасибо ещё раз.