addAttributeToFilter не фильтрует коллекцию продуктов
Я создал пользовательский шаблон для домашней страницы в своей теме magento (работает над CE 1.8.1.0), в котором я получаю отфильтрованную коллекцию продуктов:
$selections_products = $modelCatalogProduct->getCollection()
->setPageSize(32)
->addAttributeToSelect(array('name','selection_moment','selection_rouge','selection_blanc','selection_cdc','selection_champagne','selection_exception'))
->addAttributeToFilter(
array(
array('attribute'=>'selection_moment', array('eq' => '1')),
array('attribute'=>'selection_rouge', array('eq' => '1')),
array('attribute'=>'selection_blanc', array('eq' => '1')),
array('attribute'=>'selection_cdc', array('eq' => '1')),
array('attribute'=>'selection_champagne', array('eq' => '1')),
array('attribute'=>'selection_exception', array('eq' => '1'))
)
);
Это пользовательские атрибуты, созданные в бэк-офисе. Мне удалось правильно разместить их на одной странице с помощью нескольких коллекций и одного фильтра, но я пытаюсь получить весь продукт за один звонок из-за проблем с производительностью.
Плоский каталог включен для продуктов и категорий, а также для всех пользовательских атрибуты настроены с "показывать на странице продукта" и "показывать в списке продуктов" на true
ИЗМЕНИТЬ:
Забыл включить цикл вызова:
foreach($selections_products as $product){
$product = mage::getModel('catalog/product')->load($product->getId());
echo '<pre>';
var_dump($product->getName());
var_dump($product->getData('selection_moment'));
var_dump($product->getData('selection_rouge'));
var_dump($product->getData('selection_blanc'));
var_dump($product->getData('selection_cdc'));
var_dump($product->getData('selection_champagne'));
echo '</pre>';
}
Следующие значения возвращают только 0
2
Author: WISAM HAKIM, 2014-06-18
1 answers
Попробуйте вот так
$selections_products = $modelCatalogProduct->getCollection()
->setPageSize(32)
->addAttributeToSelect(array('name','selection_moment','selection_rouge','selection_blanc','selection_cdc','selection_champagne','selection_exception'))
->addAttributeToFilter(
array(
array('attribute'=>'selection_moment', 'eq' => '1'),
array('attribute'=>'selection_rouge', 'eq' => '1'),
array('attribute'=>'selection_blanc', 'eq' => '1'),
array('attribute'=>'selection_cdc', 'eq' => '1'),
array('attribute'=>'selection_champagne', 'eq' => '1'),
array('attribute'=>'selection_exception', 'eq' => '1')
)
);
Обратитесь к этому ссылка
5
Author: MeenakshiSundaram R, 2014-06-19 10:07:45