Пагинацията на 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