Вместо коллекции записей в ресурсный класс можно передать объект пагинатора:
public function index(){
return new ProductResourceCollection(Product::paginate(10));
}
Тогда JSON-объект сгенерированный ресурсным классом будет содержать следующие свойства:
- data - массив с записями выбранной части;
- links - значения пагинатора. Содрежит вложенный объект со следующими свойствами:
- first - ссылка на первую часть пагинатора;
- last - ссылка на последнюю часть пагинатора;
- prev - ссылка на предыдущую часть пагинатора, или null если это первая часть;
- next - ссылка на следующую часть пагинатора, или null, если это послденяя часть.
- meta - данные о выводимой части пагинатора, со следующими свойствами
- current_page - порядковый номер текущей части, начиная с 1;
- last_page - порядковый номер последней части пагинатора;
- per_page - предельное количество записей, входящих в выводимую часть;
- from - порядковый номер первой записи, входящей в текущую выводимую часть пагинатора;
- to - порядковый номер последней части, входящей в текущую выводимую часть пагинатора;
- total - общее количество записей в коллекции;
- path - текущая ссылка.
Класс ресурсной коллекции содержит еще два метода:
- withQuery(<массив GET-параметров>) - позволяет добавить к ссылке дополнительные GET-параметры. Пример
public function index(){
return new ProductResourceCollection(Product::paginate(10))->withQuery(['search'=>'Laravel']);
}
- preserveQuery() - указывает включить в ссылку все GET-параметры, что присутствуют в запросе.