Разбивка страницы с помощью Twig и Eloquent-5.2

После этого видео-учебника по созданию системы аутентификации PHP с Slim / Twig и Eloquent 5.2.

Я закончил видеоурок и имею рабочую систему. Но я не могу добавить разбивку на страницы во весь список пользователей в 25-м эпизоде учебника.

Кажется, все работает нормально. но когда я нажимаю страницу 2,3,4 и т. д., я все еще получаю данные на странице 1.

Вот код, который у меня есть до сих пор:

маршруты / пользователь / all.php

$app->get('/users', $authenticated(), function() use ($app) { $users = $app->user->where('active', true)->paginate(5); $users->setPath($app->urlFor('user.all')); $app->render('user/all.php', [ 'users' => $users ]); })->name('user.all'); 

просмотр / пользователь / all.php

 {% extends 'templates/default.php' %} {% block title %}All Users{% endblock %} {% block content %} <h4>All Users</h4> {% if users is empty %} <p>No registered users</p> {% else %} {% for user in users %} <div class="user"> <a href="{{ urlFor('user.profile', {username: user.username}) }}"><img src="{{ user.getAvatarUrl({size: 18}) }}"> {{ user.username }}{% if user.getFullName %} | {{ user.getFullName }}{% endif %}</a> {% if user.isAdmin() %} [Admin] {% endif %} </div> {% endfor %} {{ users.render()|raw }} {% endif %} {% endblock %} 

composer.json

 { "autoload": { "psr-4": { "A146\\": "app/A146" } }, "require": { "slim/slim": "~2.0", "slim/views": "0.1.*", "twig/twig": "~1.21", "phpmailer/phpmailer": "~5.2", "hassankhan/config": "0.8.*", "illuminate/database": "5.*", "illuminate/pagination": "5.*", "alexgarrett/violin": "2.*", "ircmaxell/random-lib": "~1.1", "fzaninotto/faker": "*" } } 

Вот результат, который я получаю:

 <div class="row"> <h4>All Users</h4> <div class="user"> <a href="/pcb/public/u/Admin"><img src="http://www.gravatar.com/avatar/...?s=18&amp;d=identicon"> Admin</a> [Admin] </div> <div class="user"> <a href="/pcb/public/u/Jamarcus22"><img src="http://www.gravatar.com/avatar/...?s=18&amp;d=identicon"> Jamarcus22 | Abbie O'Hara</a> </div> <div class="user"> <a href="/pcb/public/u/jWalker"><img src="http://www.gravatar.com/avatar/...?s=18&amp;d=identicon"> jWalker | Salvador Douglas</a> </div> <div class="user"> <a href="/pcb/public/u/Karelle00"><img src="http://www.gravatar.com/avatar/...?s=18&amp;d=identicon"> Karelle00 | Harmon Ryan</a> </div> <div class="user"> <a href="/pcb/public/u/lCarter"><img src="http://www.gravatar.com/avatar/...?s=18&amp;d=identicon"> lCarter | Lilly Stokes</a> </div> <ul class="pagination"><li class="disabled"><span>&laquo;</span></li> <li class="active"><span>1</span></li><li><a href="/pcb/public/users?page=2">2</a></li><li><a href="/pcb/public/users?page=3">3</a></li><li><a href="/pcb/public/users?page=4">4</a></li><li><a href="/pcb/public/users?page=5">5</a></li><li><a href="/pcb/public/users?page=6">6</a></li><li><a href="/pcb/public/users?page=7">7</a></li> <li><a href="/pcb/public/users?page=2" rel="next">&raquo;</a></li></ul> </div> 

любая помощь очень ценится!

Ну, это был месяц и несколько дней. Я также столкнулся с вашей проблемой, я просто получил свое решение.

То, что я сделал, я назвал класс Paginator затем использовал статический метод, чтобы заставить разбивку на страницы на любую страницу, в которой я Paginator .

 Paginator::currentPageResolver(function() use ($current_page) { return $current_page; }); 

Затем вызовите данные, которые вы хотите разбивать на страницы. Вот мой весь код ниже.

 <?php use Illuminate\Pagination\Paginator; $app->get('/controller/clients', $controllerAuthenticated(), function() use ($app) { $request = $app->request; $current_page = $request->get('page'); Paginator::currentPageResolver(function() use ($current_page) { return $current_page; }); $clients = $app->client->where(function($query) use ($client_name, $country_id) { if ($client_name != '') { $query->where('client_name', 'LIKE', '%'. $client_name .'%'); } if ($country_id != '') { $query->where('country_id', $country_id); } }) ->orderBy('client_name', 'ASC') ->paginate(1); $clients->setPath($app->urlFor('controller.client.all')); $app->render('/controller/client/all.twig', [ 'clients' => $clients, 'countries' => $countries, 'request' => $request ]); })->name('controller.client.all'); 

Я забыл, где я видел ответ, хотя, как только я его найду, я отправлю ссылку на ссылку.