我正在尝试检索具有相同属性的产品。特别是多选类型。似乎基本方法不起作用。只选择“名称”属性,我会列出所有产品。当我尝试过滤“shop_by_color”时,它会过滤掉,但不是完全过滤掉。不知道为什么它会删除一些并留下其他人,即使它们是错误的。任何提示赞赏。
<?php
$model = Mage::getModel('catalog/product');
$collection = $model->getCollection();
$collection->addAttributeToSelect('name');
$collection->addAttributeToFilter('shop_by_color'); // multiple select attribute
$collection->addFieldToFilter(array(array('attribute'=>'shop_by_color','finset'=>array('Yellow, White'),
)));
$collection->load();
?>
<ul>
<?php foreach($collection as $product) : ?>
<li><a href="<?php echo $product->getProductUrl() ?>"><?php echo $product->getName() ?></a></li>
<?php endforeach; ?>
</ul>
答案 0 :(得分:1)
嗨我不确定你的语法我以前从未见过这种事。
<ul>
<?php foreach($collection as $product) : ?>
<li><a href="<?php echo $product->getProductUrl() ?>"><?php echo $product->getName()
?></a></li>
<?php endforeach; ?>
</ul>
不应该......
<ul>
<?php foreach($collection as $product) { ?>
<li><a href="<?php echo $product->getProductUrl() ?>"><?php echo $product->getName()
?></a></li>
<?php } ?>
</ul>
DC
答案 1 :(得分:0)
<?php
$_productCollection=$this->getLoadedProductCollection();
$_productCollection->clear()
->addAttributeToSelect('*')
->addAttributeToFilter('type_id', array('eq' => 'simple'))
->addAttributeToSort('name', 'ASC')
->addAttributeToSort('created_at', 'ASC')
->load();?>
列表页面上的请使用此类型的集合过滤器,它工作正常。