Khi sử dụng phương pháp thu thập Magento addFieldToFilter có thể cho phép lọc theo giá trị NULL không? Tôi muốn chọn tất cả các sản phẩm trong bộ sưu tập có thuộc tính tùy chỉnh ngay cả khi không có giá trị nào được gán cho thuộc tính.Magento addFieldToFilter cho phép NULLs
Trả lời
Bạn không cần sử dụng addFieldToFilter
.
nay là giải pháp:
thuộc tính tên được biết đến như code
trong Magento, bạn chỉ cần sử dụng mã dưới đây để có được tất cả các sản phẩm trong đó có một thuộc tính cụ thể như một mảng
$prodsArray=Mage::getModel('catalog/product')->getCollection()
->addAttributeToFilter('custom_attribute_code')
->getItems();
bạn cũng có thể chỉ định các điều kiện nhất định cho giá trị của thuộc tính trong addAttributeToFilter
trong tham số thứ hai của addAttributeToFilter.
bạn có thể tìm thấy phương pháp này trong tập tin này (nghiên cứu thêm):
app/code/core/Mage/Eav/Model/Entity/Collection/Abstract.php
Lọc một bộ sưu tập sản phẩm bằng null/thuộc tính rỗng có hai giải pháp khả thi. Magento sử dụng INNER JOIN để lấy các giá trị của các thuộc tính để lọc. NHƯNG nếu thuộc tính sản phẩm không được chỉ định giá trị thì kết nối sẽ không thành công, vì bảng cơ sở dữ liệu/mối quan hệ bị thiếu.
Giải pháp # 1: Sử dụng addAttributeToFilter() và thay đổi kiểu tham gia từ "bên trong" (mặc định) để "left":
$collection = Mage::getModel('catalog/product')->getCollection();
$collection->addAttributeToFilter('custom_attribute', array(... condition options ..), 'left');
Giải pháp # 2: Hãy chắc chắn rằng thuộc tính tùy chỉnh của bạn có giá trị mặc định. Magento là bảo thủ trong lĩnh vực này. Magento sẽ chỉ tạo mối quan hệ giữa một thuộc tính và một sản phẩm nếu một giá trị được đưa ra cho thuộc tính. Vì vậy, trong trường hợp không có giá trị do người dùng chỉ định hoặc giá trị mặc định, thuộc tính sẽ không thể truy cập được để lọc sản phẩm ngay cả khi thuộc tính xuất hiện trong chế độ xem chi tiết sản phẩm trong bảng quản trị.
Tôi thấy bạn đã tìm thấy một giải pháp, nhưng vẫn còn có tùy chọn này:
$collection->addFieldToFilter('parent_item_id', array('null' => true));
Nhưng nếu bạn muốn sử dụng "NULL" => sai, mà không hoạt động. (và tôi nhận thấy bạn có thể sử dụng các yếu tố như "trong", "nin", "eq", "NEQ", "gt"), bạn có thể làm điều này:
$collection->addFieldToFilter('parent_item_id', array('neq' => 'NULL'));
Hy vọng điều này vẫn còn hữu ích. ..
Xem tài liệu trong mã của Varien_Data_Collection_Db :: _ getConditionSql(). Nó mô tả tất cả các tùy chọn có thể, như đã đề cập 'null', nhưng cũng 'notnull' cho đảo ngược. – fietserwin
này làm việc cho KHÔNG lọc NULL
$collection->addFieldToFilter('parent_item_id', array('notnull' => true));
Bởi vì câu hỏi không phù hợp chính xác tiêu đề của câu hỏi và tôi thấy chúng nhiều lần bằng cách tìm kiếm một điều kiện như: giá trị đặc biệt HOẶC NULL
Nếu bạn muốn lọc bộ sưu tập phù hợp với VALUE HOẶC NULL, thì bạn có thể sử dụng:
$collection->addFieldToFilter('<attribute>', array(
array('eq' => '<value>'),
array('null' => true)
));
- 1. MySQL GROUP_CONCAT với Nulls
- 2. MySQL: trung bình với nulls
- 3. Sửa đổi bảng: Cách thay đổi thuộc tính 'Allow Nulls' từ không null để cho phép null
- 4. LINQ ExecuteCommand không hiểu nulls
- 5. MySQL - Làm thế nào để tôi đếm Nulls và không Nulls?
- 6. Việc tuần tự hóa không được phép trong Magento?
- 7. Mô hình tùy chỉnh Magento sẽ không cho phép thay đổi bảng DB
- 8. Tìm kiếm LINQ bỏ qua nulls
- 9. JPQL Hibernate NULLS LAST bị bỏ qua
- 10. Sắp xếp cột lưới Magento
- 11. SQL Server UNIQUE chế với NULLs trùng lặp
- 12. Do NULLs chiếm không gian trong chỉ mục postgresql?
- 13. System.Web.HttpContext.Current nulls chính nó sau khi kiểm tra cho một bộ nhớ cache
- 14. Thay đổi một cột để không cho phép null
- 15. Đề án cho phép
- 16. Json cho phép lỗi
- 17. cách nhận thông tin thanh toán trên Magento?
- 18. Magento - Module INSERT, UPDATE, DELETE, CHỌN mã số
- 19. Làm thế nào tôi có thể không cho phép cột để cho phép null và cho phép Null cột để không cho phép null
- 20. Magento: Nhận đơn đặt hàng theo phương thức thanh toán cụ thể
- 21. Magento: bộ sưu tập sản phẩm được lọc theo nhóm
- 22. Sử dụng magento is_in_stock
- 23. Magento: Cập nhật Danh mục sản phẩm nhanh hơn
- 24. Filtering Magento bộ sưu tập của COND1 AND (cond2 HOẶC COND3)
- 25. Dừng MySQL chịu đựng nhiều NULLs trong một hạn chế UNIQUE
- 26. cho phép el trong jsp
- 27. Đồ đạc Django cho phép
- 28. PHP cho phép <?= ?>
- 29. .htaccess cho phép localhost problem
- 30. Cho phép S3 của S3
Cảm ơn bạn đã chỉ ra addFieldToFilter - nó dẫn đến giải pháp xử lý NULL fie lds – leepowers
điều này thực sự là sai, điều này sẽ làm một so sánh với trống '' hơn là một "là null" lọc. – useless