1
2
3
4
5
| <?php return array ( ... 'pagination' => 'pagination::slider' , ); |
– Theo mặc định là laravel có 2 kiểu phân trang sau:
Các cách phân trang trong laravel
Sử dụng Query Buider
– Đây là cách phân trang đơn giản nhất,các bạn có thể sử dụng lớp Query Buider để thực hiện:
1
| $users = DB::table( 'user' )->paginate(5); |
Với câu lệnh trên chúng ta đang lấy ra 5 thành viên trên 1 trang.
Sử dụng Eloquent Model
– Với cách này các bạn chỉ cần sử dụng:
1
| $users = User::paginate(5); |
Ngoài ra các bạn cũng có thể thêm các điều kiện cho việc phân trang,các bạn có thể xem các câu điều kiện sử dụng trong Eloquent ORM ở đây,ví dụ:
1
| $users = User::where( 'id' , '>' , 20)->paginate(5); |
Phân trang dữ liệu với “Simple Pagination”
– Đây là cách phân trang dữ liệu đơn giản chỉ có nút Next và Previous
1
| $users = User::where( 'id' , '>' , 20)->simplePaginate(5); |
Phân trang dữ liệu thủ công
– Trong một số trường bạn đã có sẵn dữ liệu mà không phải lấy từ csdl thì bạn có thể phân trang theo cách thủ công thông qua phương thức
Paginator::make
,ví dụ:
1
| $paginator = Paginator::make( $users , $totalUser , $perPage ); |
Bạn cũng có thể thay đổi đường dẫn của các link phân trang như sau:
1
2
| $users = User::paginate(); $users ->setBaseUrl( 'custom/url' ); |
Lúc này nó sẽ tạo ra link dạng :
http://example.com/custom/url?page=2
Thêm dữ liệu vào link phân trang
– Trong 1 số trường hợp mà bạn cần thêm 1 vài tham số vào link phân trang thì chúng ta có thể sử dụng phương thức
appends
,ví dụ:
1
| <?php echo $users ->appends( array ( 'param' => 'value' ))->links(); ?> |
Lúc này nó sẽ tạo ra link có dạng:
http://example.com/custom?url=2¶m=value
Hiển thị dữ liệu phân trang
– Sau khi lấy dữ liệu phân trang trong CSDL xong Laravel sẽ trả về cho chúng ta 1 mảng các đối tượng,lúc này chúng ta chỉ cần gửi dữ liệu đó sang bên view và hiển thị:
1
| return View::make( 'user.index' )->with( 'users' , $users ); |
Phần view hiển thị sẽ như sau:
1
2
3
4
5
6
| <div class = "list_user" > <?php foreach ( $users as $user ): ?> <?php echo $user ->name; ?> <?php endforeach ; ?> </div> <?php echo $users ->links(); ?> |
Phương thức
links()
sẽ thực hiện tạo link phân trang cho chúng ta,nếu bạn muốn tùy chỉnh link phân trang theo ý muốn của mình có thể sử dụng:
1
| <?php echo $users ->links( 'view.name' ); ?> |
– Laravel cung cấp cho chúng các phương thức để thao tác và tùy chỉnh với việc phân trang dữ liệu:
getCurrentPage
getLastPage
getPerPage
getTotal
getFrom
getTo
count
Nhận xét
Đăng nhận xét