Еще один блог

#octobercms. LengthAwarePaginator и page=1. Как убрать

Разработка
08.06.2021
6612
0

Не знаю значем, но LengthAwarePaginator из Laravel 6, который используется в OctoberCMS добавляет page=1 для первой страницы.

Исправить это можно, если отнаследуетесь от LengthAwarePaginator и просто добавите вот такую проверку:

if ($page == 1) {
      unset($parameters['page']);
}

Полный листинг:

class LengthAwarePaginator extends BaseLengthAwarePaginator
{
    public function url($page)
    {
        if ($page <= 0) {
            $page = 1;
        }
        
        $parameters = [$this->pageName => $page];

        if (count($this->query) > 0) {
            $parameters = array_merge($this->query, $parameters);
        }

        if ($page == 1) {
            unset($parameters['page']);
        }

        return $this->path()
            .(Str::contains($this->path(), '?') ? '&' : '?')
            .Arr::query($parameters)
            .$this->buildFragment();
    }
}
Нет комментариев