Magento->如何列出具有相同多选属性的产品?

发布于 2024-08-16 07:39:10 字数 797 浏览 3 评论 0原文

我正在尝试检索具有相同属性的产品。具体来说是多选类型。看来基本的方法都行不通。仅选择“名称”属性,我会列出所有产品。当我尝试过滤“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>

I'm trying to retrieve products that carry same attribute. Specifically multiple select type. It seems the basic methods don't work. Selecting only the "name" attribute, I get all my products listed. When I try to filter "shop_by_color", it filters down, but not entirely. Not sure why it removes some and leaves others, even though they are the wrong ones. Any tips appreciated.

<?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>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

爺獨霸怡葒院 2024-08-23 07:39:11

嗨,我不确定你的语法,我以前从未见过这种事情。

<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吧

Hi I am not sure about your syntax I have never seen this sort of thing before.

<ul>
<?php foreach($collection as $product) : ?>
<li><a href="<?php echo $product->getProductUrl() ?>"><?php echo $product->getName()
 ?></a></li>            
<?php endforeach; ?> 
</ul>

Shouldn't it be...

<ul>
<?php foreach($collection as $product) { ?>
<li><a href="<?php echo $product->getProductUrl() ?>"><?php echo $product->getName()
 ?></a></li>            
<?php } ?> 
</ul>

DC

情绪失控 2024-08-23 07:39:11
<?php 
 $_productCollection=$this->getLoadedProductCollection();
 $_productCollection->clear()
->addAttributeToSelect('*')
->addAttributeToFilter('type_id', array('eq' => 'simple'))
->addAttributeToSort('name', 'ASC')
->addAttributeToSort('created_at', 'ASC')
->load();?>

在列表页面上,请使用这种类型的集合过滤器,它工作正常。

<?php 
 $_productCollection=$this->getLoadedProductCollection();
 $_productCollection->clear()
->addAttributeToSelect('*')
->addAttributeToFilter('type_id', array('eq' => 'simple'))
->addAttributeToSort('name', 'ASC')
->addAttributeToSort('created_at', 'ASC')
->load();?>

on list page please use this type collection filter it's working fine.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文