Как в Laravel 5.1 изменить pagination?

Использую стандартный постраничный вывод laravel.

{!! $users->render() !!}

laravel генерирует следующее:

<ul class="pagination">
        <li>
            <a href="http://test.ru/users/?page=1" rel="prev">«</a></li>
            <li><a href="http://test.ru/users/?page=1">1</a></li>
            <li class="active"><span>2</span></li>
            <li class="disabled"><span>»</span>
        </li>
    </ul>


Вопрос в том как сделать что бы laravel вместо
test.ru/users/?page=1

для первой и предыдущей страницы выводил в href
test.ru/users

Иначе получается что 2 страницы с одним и тем же контентом.
test.ru/users
и
test.ru/users/?page=1
  • Вопрос задан
  • 2484 просмотра
Пригласить эксперта
Ответы на вопрос 2
Tesla
@Tesla
Правильно было бы сделать свой Paginator, унаследовать его от Illuminate\Pagination\Paginator или Illuminate\Pagination\LengthAwarePaginator, и в методе url() добавить проверку на вывод первой страницы. Но тогда придется создавать пагинатор вручную, передавая ему необходимые параметры.

Странно, что в Illuminate\Database\Eloquent\Builder Paginator вызывается напрямую, а не через DI, это решило бы все проблемы.
Ответ написан
tridcatij
@tridcatij
Если лень заморачиваться, то самый кустарный способ - прописать редирект с test.ru/users/?page=1 на test.ru/users
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы