Я запрашиваю сообщения БД через красноречивый контроллер Laravel и хотел бы сначала отфильтровать сообщения, а затем разбить их на страницы.
$filter = ['author_id' => $id, 'status' => 'live', 'type' => $type];
$posts = Post::where($filter)->orderBy('id','desc')->get();
$posts = Post::paginate(1, ['*'], 'page', $page);
return $posts;
Конечно, в настоящее время он будет только разбиваться на страницы. Как я могу объединить оба $posts, чтобы отфильтрованные результаты были разбиты на страницы?
Спасибо!






Так же просто, как просто связать такие методы, как:
$posts = Post::where($filter)
->orderBy('id','desc')
->paginate(1, ['*'], 'page', $page);
Вы также можете упростить это решение, и оно станет более гибким.
$filter = ['author_id' => $id, 'status' => 'live', 'type' => $type];
$posts = new Post();
$posts = $posts->where($filter);
$posts = $posts->orderBy('id','desc');
$posts = $posts->paginate(1, ['*'], 'page', $page);
return $posts;
Превосходно! Теперь это имеет смысл - думал, что для каждого требовался
::.