Chuyển tới nội dung
Trang chủ » Filter Collection trong Magento 2

Filter Collection trong Magento 2

Trong bài viết này tôi sẽ hướng dẫn các bạn về addAttributeToFilter và addFieldToFilter trong Magento 2. Cả hai function này đều được dùng để filter collection trong Magento 2. Đều dùng để filter collection? Tại sao lại có hai function có cùng chức năng, chúng ta sẽ cùng nhau tìm hiểu xem hai function này khác nhau chỗ nào nhé.

Nếu bạn chưa biết về collection trong Magento 2, hãy tìm hiểu trước về bài này nhé.

Model, Resouce Model và Collection trong Magento 2.

Phương thức addFieldToFilter

Phương thức này được sử dụng cho các collection không phải là EAV. Nhưng cú pháp thì tương tự như addAttributeToFilter vì vậy bạn chỉ cần biết cách sử dụng một cái là được.

Phương thức addAttributeToFilter

Phương thức này được sử dụng cho các collection theo mô hình EAV. Cả hai phương thức này bạn có thể hiểu là WHERE trong SQL. Chúng hỗ trợ tất cả các điều kiện có trong SQL như lớn hơn, like, lớn hơn hoặc bằng… miễn là bạn viết đúng cú pháp của nó.

Điều kiện filter collection trong Magento 2

Tất nhiên đầu tiên bạn phải khởi tạo collection trong Constructor của bạn:

Điều kiện =

Đoạn code trên sẽ filter và chỉ lấy những sản phẩm có entity_id = 1.

Điều kiện khác (!=)

Đoạn code trên sẽ filter và chỉ lấy những sản phẩm có entity_id khác 1.

Điều kiện like

Điều kiện not like

Điều kiện in

Điều kiện not in

Điều kiện null

Điều kiện not null

Điều kiện lớn hơn

Điều kiện nhỏ hơn

Điều kiện lớn hơn hoặc bằng

Điều kiện nhỏ hơn hoặc bằng

Cách xem mã SQL dùng để debug

Khi bạn làm việc và bị báo lỗi truy vấn SQL, bạn có thể dùng sử dụng $collection->getselect()->__toString() để xem câu lệnh SQL của bạn.

Đoạn code trên sẽ xuất ra màn hình mã SQL như bên dưới:

Kết luận

Vừa rồi tôi đã hướng dẫn cho các bạn về filter collection trong Magento 2. Hy vọng bài viết sẽ giúp ích được cho các bạn. Thanks.

Trả lời

Email của bạn sẽ không được hiển thị công khai.