Header Ads Widget

Sử dụng phân trang trong laravel


Trong Laravel để cấu hình phân trang chỉ cần vào app/config/view.php
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:
    1. pagination::slider Phương thức này sẽ cho chúng ta hiển thị các link phần trang đầy đủ
    2. pagination::simple Phương thức này phân trang dưới link đơn giản chỉ có nút Next và Previous

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&param=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:
  1. getCurrentPage
  2. getLastPage
  3. getPerPage
  4. getTotal
  5. getFrom
  6. getTo
  7. count

Nhận xét