Tôi cần lấy tất cả các thuộc tính có thể lọc cho thể loại. Tôi đang sử dụng đoạn mã đó:
$category = Mage::getModel('catalog/category')->load($categoryId);
$layer = Mage::getModel('catalog/layer');
$layer->setCurrentCategory($category);
$attributes = $layer->getFilterableAttributes();//$attributes now is empty array
Danh mục có sản phẩm với các thuộc tính có thể lọc, cũng trong danh mục tùy chọn neo đã được bật. Mã này sử dụng trong API SOAP.
Có lẽ ai đó biết tôi đã phạm sai lầm ở đâu?
Bạn có thể yêu cầu điều tương tự ở đây stackoverflow.com/questions/3157799/
—
mẹo
Tôi không thể sử dụng var_dump vì đó là mã cho api và nó chỉ trả về các giá trị được xác định trong tệp wsdl.xml. Nhưng tôi kiểm tra danh mục bằng cách chuyển nó vào một trong những giá trị này. Mô hình danh mục là OK, và nó được đặt thành lớp chính xác và tôi có thể lấy lại bằng $ layer-> getCienCarget (); P
—
Quickerz
Bạn có thể thử thêm
—
michael
Mage::log($collection->getSelect(), Zend_Log::INFO, 'blah.log', true);
vào app/code/core/Mage/Catalog/Model/Layer.php
-> public function getFilterableAttributes()
trước return
và để chạy truy vấn SQL đã ghi trực tiếp trong cơ sở dữ liệu hoặc để so sánh nó với truy vấn SQL được ghi lại khi bạn mở danh mục thông qua trang web.
getFilterableAttribut () trả về mảng trống vì $ setIds = $ this -> _ getSetIds () trả về mảng trống. Điều này xảy ra vì $ this-> get SẢNtCollection () trả về bộ sưu tập trống. Có lẽ một cái gì đó khác cần thiết cho lớp $ để có được bộ sưu tập sản phẩm từ nó?
—
Quickerz
var_dump($category)
xem mọi thứ nói chung có ổn không.