Как использовать несколько аргументов при запросе результатов Laravel Eloquent - PullRequest
0 голосов
/ 31 октября 2018

Я запрашиваю сообщения БД через красноречивый контроллер 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, чтобы отфильтрованные результаты были разбиты на страницы?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 31 октября 2018

Вы также можете упростить решение, как это, и это станет более гибким.

$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;
0 голосов
/ 31 октября 2018

Так просто, как просто цепочка таких методов, как:

$posts = Post::where($filter)
    ->orderBy('id','desc')
    ->paginate(1, ['*'], 'page', $page);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...