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

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

Моя модель

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'));
}

0

Решение

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

Ваш код ломается так:

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) ]);
}
3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]