0
0
Lập trình
Admin Team
Admin Teamtechmely

Hướng Dẫn Xây Dựng Backend Cho Blog: Phần 5 - Hiển Thị Danh Sách Bài Viết, Tìm Kiếm Và Lọc Theo Danh Mục

Đăng vào 3 tuần trước

• 3 phút đọc

Chủ đề:

@ezyplatform

Nội Dung Chính

Chào mừng bạn đến với phần 5 trong loạt bài viết hướng dẫn xây dựng Backend cho Blog. Trong phần này, chúng ta sẽ khám phá các nội dung nổi bật sau:

  1. Viết mã hiển thị danh sách các bài viết trong mục bài viết.
  2. Xây dựng chức năng tìm kiếm cho Blog.
  3. Xây dựng chức năng lọc bài viết theo danh mục.

1. Viết Mã Hiển Thị Danh Sách Các Bài Viết

Ý Tưởng

Trang bài viết trong Blog sẽ hiển thị tất cả các bài viết có trong Blog, sắp xếp theo thứ tự mới nhất. Khi người dùng nhấn vào mục Bài viết trong phần Header, hệ thống sẽ lấy danh sách các bài viết và hiển thị chúng.

Thực Hiện

Bước 1: Tạo một controller mới có tên là WebEssentialListPostController. Controller này sẽ xử lý các yêu cầu gửi đến đường dẫn /post-list, và thực hiện phương thức listPost() để lấy danh sách bài viết.

Các tham số được sử dụng để lấy bài viết bao gồm:

  • nextPageToken, prevPageToken, lastPage, limit: Phân trang bài viết.
  • authorUuid: Lấy bài viết của một tác giả nhất định.
  • termSlug: Lấy bài viết theo slug.
  • keyword: Tìm bài viết theo từ khóa (sử dụng cho chức năng tìm kiếm).
  • categoryIds: Lọc bài viết theo danh mục.

Mã Nguồn

Dưới đây là đoạn mã sử dụng để lấy danh sách bài viết:

  • Đoạn mã 1: Xác minh các tham số đầu vào.
  • Đoạn mã 2: Lấy bài viết theo thứ tự ngày tháng.
  • Đoạn mã 3: Tạo tên và slug của danh mục với loại CATEGORY.
  • Đoạn mã 4: Trả về View với danh sách bài viết, danh sách danh mục và từ khóa tìm kiếm.

Kết quả trả về là danh sách các bài viết được lưu trong listPostPagination.items. Sử dụng điều kiện th:if để kiểm tra xem có bài viết nào tồn tại hay không.

2. Xây Dựng Chức Năng Tìm Kiếm Cho Blog

Mục Đích

Chức năng tìm kiếm cho phép người dùng tìm các bài viết theo từ khóa. Chúng ta sẽ sử dụng tham số keyword đã được đề cập trong controller WebEssentialListPostController để thực hiện chức năng này.

Thực Hiện

Giá trị tìm kiếm (keyword) sẽ được lấy từ ô input và gửi đi kèm trong URL với tham số ?keyword. Khi controller nhận được yêu cầu, nó sẽ lọc và trả về các bài viết có chứa từ khóa này.

3. Xây Dựng Chức Năng Lọc Bài Viết Theo Danh Mục

Ý Tưởng

Khi chưa chọn danh mục nào, tất cả các bài viết sẽ được hiển thị. Khi chọn danh mục, chỉ những bài viết thuộc danh mục đó mới được lấy ra. Ngoài ra, chức năng lọc cũng sẽ hoạt động đồng thời với chức năng tìm kiếm.

Thực Hiện

Bước 1: Cài đặt giá trị cho các danh mục trong bộ lọc.
Bước 2: Sử dụng AJAX để cập nhật danh sách bài viết khi người dùng chọn hoặc bỏ chọn các mục trong bộ lọc.

Bộ lọc danh mục sẽ chứa tên và id của các danh mục, và mỗi danh mục đều thuộc loại CATEGORY. Khi trang được khởi tạo, sẽ có một biến lưu trữ danh sách danh mục để người dùng có thể lựa chọn.

Hàm updatePostFilterByCate() sẽ được sử dụng để lấy các id của danh mục mà người dùng đã chọn. Sau đó, các id này sẽ được sử dụng để gọi hàm getPostPagination(), truyền thêm tham số categoryIds để lọc ra các bài viết phù hợp theo danh mục.


Tóm Tắt

Trong phần này, chúng ta đã hướng dẫn chi tiết cách xây dựng chức năng hiển thị danh sách bài viết, chức năng tìm kiếm và lọc bài viết theo danh mục trên Blog. Nếu bạn có bất kỳ câu hỏi nào, hãy để lại ý kiến bên dưới!

Cảm ơn bạn đã theo dõi!
source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào