Laravel无限滚动分页输出
我是laravel的新手,我正在开发一个基于laravel版本4.2的项目。 使用滚动而不是默认分页加载更多结果时遇到了一些问题。 我知道有jQuery插件可以帮助我解决这个问题,但是它们中没有一个或建议的方法可以帮助我。
所以这是我的代码:
laravel模型
//inside a AdGenerator class public function allAds(){ $allAds = DB::table('infos')->paginate(10); return $allAds; }
laravel控制器
//inside controller $ads = new AdGenerator(); $allAds = $ads->allAds(); return View::make('view')->with(array( 'ads'=>$allAds, ));
查看刀片
Number Title Field IP Time Status Check @foreach($ads as $ad) tableName}}"> {{$ad->id}} - {{$ad->title}} {{$ad->tableName}} {{$ad->ip}} {{$ad->postTimeConverted}} @if($ad->active == 1) active @else not active @endif @endforeach {{ $ads->links() }}
到这里,一切正常。 它创建ul.pagination并为每个页面加载特定的结果。 但是我应该如何使用infiniteScroll或jScroll插件来隐藏分页并通过滚动加载更多的表格结果呢?
我用Laravel 5 Pagination制作了无限卷轴。 我希望这可以帮助你或任何其他人。
javascript文件
var infinitScroll = function (options) { var event = options.event ? options.event : 0; var count = options.count ? options.count : 1; var didGetData = true; $(window).on('scroll', function () { console.log("scroll"); if ($(window).scrollTop() >= $(document).height() - $(window).height() - 10) { loadMore(); count++; } }).scroll(); function loadMore() { var url = "/dashboard/posts/" + event + "?page=" + count if (didGetData) { $('#load').show(); $.ajax({ type: "GET", url: url, success: function (response) { if (response) { didGetData = true; $('.scroll').append(response); } else { didGetData = false; } $('#load').hide(); }, error: function (jqXHR, textStatus, errorThrown) { console.log(errorThrown); console.log(textStatus); } }); } } }
部分视图文件(循环项目)
@foreach($posts as $post) @endforeach
仪表板控制器文件
/* VIEW EVENT PAGE */ public function getEvent($id) { $user = Auth::user(); $event = Festivity::find($id); $postcount = Post::where('owner_event', $event->id)->count(); if (($event === null) || ($event->owner_company !== $user['id'])) { return redirect('/dashboard', ['error' => 'Event not found or you dont har premission']); } else { $events = Festivity::where('owner_company', $user['id'])->orderBy('title')->get(); return view('dashboard/view', [ 'postcount' => $postcount, 'events' => $events, 'event' => $event, ]); } } /* GET POSTS FOR EVENTS */ public function getPosts($id) { $user = Auth::user(); $event = Festivity::find($id); if (($event === null) || ($event->owner_company !== $user['id'])) { return redirect('/dashboard', ['error' => 'Event not found or you dont har premission']); } else { $posts = Post::where('owner_event', $event->id)->Paginate(10); return view('dashboard/posts', [ 'posts'=> $posts, ]); } }
主视图文件
Recent posts ({{$postcount}})
@if($postcount === 0) No posts to show!
@else Just a bunch of random stuff Loading... @endif