【问题标题】:Magento -> How can I list products with same multiple select attribute?Magento -> 如何列出具有相同多选属性的产品?
【发布时间】:2011-01-01 02:48:48
【问题描述】:

我正在尝试检索带有相同属性的产品。特别是多选类型。似乎基本方法不起作用。只选择“名称”属性,我列出了我所有的产品。当我尝试过滤“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>

【问题讨论】:

    标签: php filter magento e-commerce attributes


    【解决方案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>
    

    直流

    【讨论】:

    • 显然是 foreach() : endforeach;是合法的语法。谁知道!我还是不会用它
    • 感谢试用 DeveloperChris。这种语法几乎就是我看到的用于 Magento 的语法。它工作正常,您认为如果在站点范围内实施您的方法会加快加载速度吗?我最需要过滤选项的帮助。如果您熟悉 Magento,我将不胜感激。
    • 不,它不会对速度产生任何影响,编译时间可能会缩短一小部分,但仅此而已。使用像 eaccelerator 这样的 php 加速器是一个不错的选择。抱歉,我根本不知道 magento。要找到原始问题的根源,我将在 mysql(假定)中启用查询日志记录,然后查看发送到数据库的实际查询。如果返回正确的结果,那么您需要单步执行代码以查找错误。
    【解决方案2】:
    <?php 
     $_productCollection=$this->getLoadedProductCollection();
     $_productCollection->clear()
    ->addAttributeToSelect('*')
    ->addAttributeToFilter('type_id', array('eq' => 'simple'))
    ->addAttributeToSort('name', 'ASC')
    ->addAttributeToSort('created_at', 'ASC')
    ->load();?>
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-23
      • 1970-01-01
      • 2011-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多