Разбиение на страницы Laravel не работает с закрытием

Я пытаюсь реализовать функцию поиска с помощью Laravel. Вот мой метод, который должен возвращать результаты поиска:

$keyword = request('q');
$posts = Post::where('deleted', false)
                            ->where(function($q) use($keyword) {
                                        $q->where('title', 'like', '%' . $keyword . '%')
                                        ->orWhere('body', 'like', '%' . $keyword . '%');
                                    })     
                            ->latest()
                            ->paginate(5);

Проблема в том, что когда я ищу что-то, что имеет более 5 результатов, он показывает первые 5 результатов и 2 (например) страницы в ссылках, но затем, когда я нажимаю на вторую страницу, в ссылках и некоторых сообщениях почему-то есть 3 страницы. повторяются. Я предполагаю, что закрытие вызывает эту проблему, но я не знаю, как это исправить.

Приветствуются любые советы, спасибо! :)


person Filip Egeric    schedule 19.02.2018    source источник


Ответы (1)


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

{{ $posts->appends(['q' => request('q')])->links() }}

Из документов:

Вы можете добавить к строке запроса ссылки на страницы, используя метод appends.

person Alexey Mezenin    schedule 19.02.2018