在你的控制器,你可以做这样的事情:
function index (Request $request){
$books = Book::paginate(10);
if($request->ajax()){
//ajax request
return Response::json(view('books', compact('books'))->render());
}
//html request
return view('books', compact('books'));
}
你可以通过一个page参数的路线导航到页面。
实施例:example.com/books?page=2将获取的结果的第二页。
建议的方法
有类似HTML的,你会normaly做渲染初始请求。然后在接下来的页面中,得到呈现为Ajax调用的第二页,并追加到DOM。
return Response::json(view('books', compact('books'))->render());
$('.pager a').on('click', function (e) {
var page = $(this).attr('href').split('page=')[1];
e.preventDefault();
$.ajax({
type: "GET",
url: 'page=' + page,
dataType: 'json',
success:function(json){
alert("Success"+json);
},
error:function(){
alert("Error");
}
});
});
});