Laravel orderBy дата не работает при использовании paginator

Я новичок в laravel и изо всех сил пытаюсь понять это. Я пытаюсь заказать свои посты по дате, а также использовать paginator. Всякий раз, когда я удаляю страничку. он заказывает по дате, но добавляю его обратно в заказы по id, я думаю?

Моя модель

class Post extends Model { // protected $dates = ['date']; } 

Мой метод контроллера

 public function show() { $posts = Post::orderBy('date','desc')->get(); return view('welcome',['posts' => Post::paginate(5)], compact('posts')); } 

Вы по существу извлекаете все сообщения, а затем разбиваете на них страницы, после получения всех сообщений и их упорядочения.

Ваш код разбивается следующим образом:

 public function show() { // retrieve posts and order them by date $posts = Post::orderBy('date','desc')->get(); // retrieve posts again and paginate them return view('welcome',['posts' => Post::paginate(5)], compact('posts')); } 

У вас есть два варианта:

Получайте сообщения, заказывайте их, разбивайте их по страницам и храните их в переменной, которую вы передаете вашему представлению:

 public function show() { $posts = Post::orderBy('date','desc')->paginate(5); return view('welcome', compact('posts')); } 

Или получайте сообщения, заказывайте их и разбивайте их по страницам, передавая их в представление:

 public function show() { return view('welcome',[ 'posts' => Post::orderBy('date','desc')->paginate(5) ]); }