Pagination ( การแบ่งการแสดงข้อมูล )
<a name="configuration"></a> ## การตั้งค่า
การตั้งค่าการของอยู่ที่ app/config/view.php ตัวแปรชื่อ pagination ในการแบ่งหน้า ฟังก์ชัน pagination::slider ใช้ในการสร้างเลขหน้า pagination::simple ใช้สร้างปุ่ม “previous” และ “next”
<a name="usage"></a> ## การใช้งาน
การใช้งานมีอยู่หลายรูปแบบ เเต่ที่ง่ายที่สุดใช้เมทอด paginateบน query builder หรือ Eloquent model.
ตัวอย่างโดยใช้ query builder
1 $users = DB::table('users')->paginate(15);
You may also paginate Eloquent models:
ตัวอย่างโดยใช้ Eloquent Model
1 $users = User::where('votes', '>', 100)->paginate(15);
ในตัวอย่างเรากำหนดจำนวนข้มูลต่อหน้าได้ ส่วนการแสดงผลบน view เราจะใช้ฟังก์ชัน links
1 <div class="container">
2 <?php foreach ($users as $user): ?>
3 <?php echo $user->name; ?>
4 <?php endforeach; ?>
5 </div>
6
7 <?php echo $users->links(); ?>
เพียงแค่นี้ก็จะได้การแบ่งหน้าละครับ.
เราสามารถจัดการๆ แบ่งหน้าได้โดยฟังก์ชันต่อไปนี้ครับ:
getCurrentPagegetLastPagegetPerPagegetTotalgetFromgetTo
บางครั้งเราอยากสร้างเองเพราะอาจจะมีข้อมูลที่ต้องผ่านการคำนวนหลายขั้น ก็ใช้เมทอดนี้เลยครับ Paginator::make
ตัวอย่าง
1 $paginator = Paginator::make($items, $totalItems, $perPage);
<a name="appending-to-pagination-links"></a> ## การสร้างลิ้งของการแบ่งหน้า
เราสามารทำการเรียงลำดับการแสดงผลได้โดยใช้เมทอด appends เหมือนในตัวอย่าง
1 <?php echo $users->appends(array('sort' => 'votes'))->links(); ?>
ลิ้งที่ออกมาหน้าตาจะเป็นแบบนี้
1 http://example.com/something?page=2&sort=votes
ส่วนที่เพิ่มเข้ามาใน 4.1 จะเป็นการสร้างลิ้งแบ่งหน้าแบบ ajax ด้วยตัวอย่างนี้
1 <?php echo $users->fragment('foo')->links(); ?>
เราจะได้ลิ้งแบบนี้มา
http://example.com/something?page=2#foo
ซึ่งเราสามารถประยุกต์ไปใช้ร่วมกับ ajax ได้