Search là 1 yếu tố cực kì cần thiết với mọi website .Có 2 cách tạo formsearch là search trong database mình và search nhờ công cụ của google là https://cse.google.com/all .Hôm nay mình sẽ hướng dẫn các bạn cách tạo form search cơ bản dùng Activer Recoder còn nâng cao hơn là Elasticsearch thì để bài khác nhé .

Hôm nay mình sẽ tìm hiểu về :

  • Cách tạo models search
  • Cách tạo controller search
  • Cách tạo views search

Tạo models search

Models mình tạo theo activer record đơn giản như sau :

Chúng ta tại sao dùng activer record .Còn nhiều kiểu truy vấn khác như query builder ,DAO nhưng qua nhiều dự án mình thấy activer record mang sức mạnh xử lý nhanh hơn và dễ hiểu hơn cho người mới học .

Tạo controller search

Tạo 1 file tên SearchController.php trong phần frontend/controllers có nội dung như sau :

Các bạn mới đầu lập trình nên chú ý là tạo thói quen ngay từ đầu là mọi controller phải có behaviors() nhé .Ở controller này mình có 2 actions là actionIndex() có nhiệm vụ show ra file view có ô search và actionSearch() có nhiệm vụ search dữ liệu .Thường khi làm site hoàn chỉnh thì ko có actionIndex() mà chỉ có actionSearch() thôi .Chú ý thứ 2 nữa là câu lênh

Câu lệnh này có nhiệm vụ tìm kiếm căn bản .Mình nói là search căn bản vì bây giờ toàn dùng elasticsearch nhưng nếu bạn ko biết quy trình căn bản này thì rất khó tiếp cân elasticsearch .

Tạo view search

File index.php trong folder frontend/views/search mình viết 1 đoạn code như sau :

Vì search nên khi submit ta dùng phương thức get cho nhanh .Ngoài ra bạn có thể dùng kiểu post hoặc mã hóa md5 truy vấn khách hàng nếu muốn bảo mật hơn .

Và kết quả sẽ như hình dưới đây

Form search

Trang kết quả

Bạn hãy thưc hành nhé .Nói chung đây là bước đầu trong quá trình search .Lưu ý cực kì quan trọng đó là hãy kết hợp với cache ,và tối ưu server và kết hợp giới hạn số lần search lý do là tránh bị đối thủ ddos thông qua seach kiểu hàng loạt

Cảm ơn các bạn đã đọc đến cuối bài viết của mình .Hãy like và chia sẻ bài viết đến bạn bè quan tâm nhé .Nếu có khó khăn gì hãy pm skype :hien_cpa của mình nhé

Leave a Reply

Your email address will not be published. Required fields are marked *