Метод withPath
Метод withPath применяется к экземпляру класса LengthAwarePaginator
и позволяет изменить базовый путь (URL) для всех ссылок пагинации.
Первым параметром передаётся новый путь в виде строки.
Метод возвращает тот же объект пагинатора с обновлённым путём.
Это полезно, когда вы хотите переопределить стандартный URL, который
используется для построения ссылок на страницы.
Синтаксис
<?php
$paginator->withPath($path);
?>
Пример
Давайте создадим пагинатор и изменим его базовый путь с помощью
метода withPath:
<?php
use AppModelsArticle;
use IlluminatePaginationLengthAwarePaginator;
$articles = Article::all();
$perPage = 10;
$currentPage = request()->query('page', 1);
$offset = ($currentPage - 1) * $perPage;
$items = $articles->slice($offset, $perPage)->values();
$total = $articles->count();
$paginator = new LengthAwarePaginator(
$items,
$total,
$perPage,
$currentPage
);
$paginator->withPath('/articles');
$res = $paginator->url(2);
echo $res;
?>
Результат выполнения кода:
"/articles?page=2"
Пример
Давайте изменим путь для пагинатора, который получен из запроса
Eloquent с использованием метода paginate:
<?php
use AppModelsArticle;
$articles = Article::where('status', 'published')
->paginate(15);
$articles->withPath('/api/v1/articles');
$res = [
'page_1' => $articles->url(1),
'page_3' => $articles->url(3),
'last_page' => $articles->url($articles->lastPage()),
];
echo json_encode($res);
?>
Результат выполнения кода:
{"page_1":"\/api\/v1\/articles?page=1","page_3":"\/api\/v1\/articles?page=3","last_page":"\/api\/v1\/articles?page=5"}
Пример
Метод withPath также можно использовать в цепочке вызовов
с другими методами пагинации:
<?php
use AppModelsArticle;
$articles = Article::where('category', 'tech')
->paginate(20)
->withPath('/tech-articles')
->appends(['sort' => 'desc']);
$res = [
'url' => $articles->url(2),
'has_pages' => $articles->hasPages(),
];
echo json_encode($res);
?>
Результат выполнения кода:
{"url":"\/tech-articles?page=2&sort=desc","has_pages":true}
Смотрите также
-
метод
url,
который генерирует URL для определённой страницы -
метод
withQueryString,
который сохраняет все параметры запроса в ссылках пагинации -
метод
appends,
который добавляет дополнительные параметры к ссылкам пагинации -
метод
links,
который выводит HTML-разметку со ссылками пагинации