2012-08-03 28 views
6

Hôm qua tôi đã viết một số mã để lấy một bộ sưu tập các sản phẩm. Mã này làm việc tốt, tuy nhiên ngày nay, mã doe snot làm việc, không có gì thay đổi, tôi không thể hiểu tại sao nó không hoạt động.Bộ sưu tập Magento không chọn thuộc tính

Đây là những gì tôi mã

$collection = Mage::getModel('catalog/product')->getCollection() 
->addAttributeToSelect('MPN') 
->addAttributeToSelect('JAN') 
->addAttributeToSelect('UPC') 
->addFieldToFilter(array(
    array('attribute'=>'type_id','eq'=>'simple') 
)) 
->setPage(1,10); 
$collection->load(); 
foreach($collection as $item) 
{ 

echo print_r($item->getdata()); 
} 

Hôm qua tôi đã có thể nhìn thấy một danh sách các sản phẩm có chứa MPN của tôi, JAN và UPC của (đây là những thuộc tính tùy chỉnh trong backend). Hôm nay họ không tải chút nào. Thật lạ lùng, tôi nghĩ có lẽ sự hiểu biết của tôi về các bộ sưu tập không tốt như tôi nghĩ.

Mọi trợ giúp sẽ được đánh giá cao.


EDIT:

Refreshing cache Magento dường như làm cho mọi thứ hoạt động trở lại. Điều này có nghĩa là bộ sưu tập đôi khi sử dụng bộ nhớ cache, có cách nào đó tôi có thể viết mã để nó không sử dụng bộ nhớ cache không?

Trả lời

12

Điều đó phụ thuộc vào việc bạn đang sử dụng bộ sưu tập của mình ở đâu. Nếu bộ sưu tập được sử dụng trên giao diện người dùng và chế độ Phẳng được bật, thì các thuộc tính của bạn sẽ không khả dụng vì chúng không được đưa vào chỉ mục Phẳng.

Để đưa vào index phẳng bạn cần phải thêm các cấu hình XML sau vào tập tin config.xml lại module

<config> 
    <frontend> 
     <product> 
       <collection> 
        <attributes> 
         <MPN /> 
         <JAN /> 
         <UPC /> 
        </attributes> 
       </collection> 
      </product> 
    </frontend> 
</config> 

Trong trường hợp này nó sẽ có sẵn ở chế độ phẳng. Cũng bằng cách thêm các thuộc tính vào nút XML này, các thuộc tính của bạn cũng sẽ tự động được thêm vào tất cả các bộ sưu tập danh sách sản phẩm trên giao diện người dùng.

Vui chơi với Magento Development!

+1

Lưu ý: Hoạt động cũng cho các bộ sưu tập danh mục (thay thế ' 'bằng' ') – Alex

Các vấn đề liên quan