Мое представление вызывает функцию JavaScript для отправки сообщения контроллеру, который, в свою очередь, генерирует массив и возвращает объект разбиения на страницы на основе массива. Я использовал Paginator::make, который работает. Но мне нужен «интеллектуальный» диапазон страниц возвращаемого объекта.
Мой код JavaScript указан ниже:
$('form#form-retrieve-data').submit(function(){
$.post(
'mysite.com/retrieve', //route for the action page
{
"_token": $( this ).find( 'input[name=_token]' ).val(),
'from-date': '2016-04-01',
'to-date': '2016-04-15',
'per-page': 20,
'page-number': 1
},
function(data){
var current_page = data.current_page;
var retrieve_data = data.data;
var start_page = data.from; //first page of the page range
var last_page = data.last_page; //last page of the page range
var per_page = data.per_page;
$.each(retrieve_data, function(i, val){
//handle each retrive data hare
}
for(var i = start_page; i <= last_page; i++){
//create the page links here
}
},
'json'
);
return false;
});
Контроллер страницы действий возвращает объект пагинации:
$from_date = Input::get('from-date');
$to_date = Input::get('to-date');
$currentPage = Input::get('page-number', 1) - 1;
$perPage = Input::get('per-page');
$retrieved_data = array(); //array that will hold elements to be returned back
//code to get retrieved data and push to array $retrieved_data
$pagedData = array_slice($retrieved_data, $currentPage * $perPage, $perPage);
//$response = Paginator::make($pagedData, count($retrieved_data), $perPage); //this was ok but I want an "intelligent range of pages
$response = Paginator::slider($pagedData, count($retrieved_data), $perPage); //I was hoping that the returned first and last pages would be the "intelligent" range
return Response::json($response);
Можно ли использовать Paginator::slider для массивов так же, как Paginator::make?
Спасибо