Thiết lập Pagination trong laravel

laravel

(Tap Code) #1

E đang tạo web bằng laravel và e đang muốn tạo phân trang. E chỉ cần 1 dạng phân trang đơn giản thôi, giống phương thức simplePaginate, nhưng e lại không muốn để là previous và next mà muốn đổi thành tên khác (ví dụ đổi thành tiếp theo, trước đó). Cao nhân nào giúp e với ạ. Em cảm ơn


(明玉) #2

URL request lên server: thêm query param ví dụ ?page=1&limit=5
Server nhận được request thì lấy 2 tham số page và limit, ném vào db query để lấy nội dung đúng như mình muốn, rồi trả về cho client.

Ở client, thiết kế 2 nút previous và next theo cách bạn muốn, mỗi nút có URL tương ứng.

Và như thế, nếu bạn tự viết câu lệnh truy vấn thì bạn không cần bất kì cái method nào như simplePaginate cả.


(Hung) #3

Gõ lệnh để tạo resources/views/vendor/pagination:

php artisan vendor:publish --tag=laravel-pagination

Trong folder pagination, tạo file blade cho phân trang theo ý bạn, như custom.blade.html.

<ul>
  <li><a href="{{ $results->url(0) }}">Đầu tiên</a></li>
  <li><a href="{{ $results->previousPageUrl() }}">Trước</a></li>
  <li><a href="{{ $results->nextPageUrl() }}">Sau</a></li>
  <li><a href="{{ $results->lastPage() }}">Cuối cùng</a></li>
</ul>

Qua blade file bạn muốn insert, thêm dòng này vào để render:

{{ $paginator->links('custom') }}

Chi tiết thì xem thêm link dưới, mình cũng chôm từ đó ra:
https://laravel.com/docs/5.8/pagination#customizing-the-pagination-view


(Note: chưa code Laravel lần nào)


83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?