Magento:获取属性代码

Posted

技术标签:

【中文标题】Magento:获取属性代码【英文标题】:Magento : Getting Attribute Code 【发布时间】:2010-02-06 18:31:41 【问题描述】:

我试图弄清楚如何从 Magento 的过滤器列表中获取属性代码。

<?php
$_filters = $this->getFilters();
foreach ($_filters as $_filter)

    echo $this->__($_filter->getName());
    echo $this->__($_filter->getAttributeCode()); # color_name

?>

getAttributeCode() 不是方法。 我想为 app/design/frontend/default/default/template/catalog/layer/view.phtml 中的 attribute_code 中的每个过滤器指定一个 CSS 类名

【问题讨论】:

【参考方案1】:

以下将起作用:

foreach($filters as $_filter)

    $attributeModel = $_filter->getAttributeModel();
    if($attributeModel) 
        echo $attributeModel->getAttributeCode();
    

这里的关键是检查过滤器实际上是一个属性,因为有些不是(最常见的类别)并且这些类型的过滤器显然没有属性代码。

【讨论】:

非常感谢。我从 app/code/core/Mage/Catalog/Block/Layer/View.php 中的 $this->_getFilterableAttributes() 函数 getFilters() 获取它几乎就在那里: $filters[] = $this->getChild($属性->getAttributeCode().'_filter');【参考方案2】:

如果你想在 /catalog/layered/state.phtml 中使用这个 sn-p 请注意;请使用

$attributeModel = $_filter->getFilter()->getAttributeModel();

而不是

$attributeModel = $_filter->getAttributeModel();

【讨论】:

以上是关于Magento:获取属性代码的主要内容,如果未能解决你的问题,请参考以下文章

获取magento类别view.phtml的特定属性

在Magento中获取产品属性标签和值

markdown Magento 2 - 获取属性选项

markdown Magento 2 - 获取属性选项

Magento 获取未加载所有属性的相关产品

Magento-获取自定义产品属性