我正在尝试在Magento产品视图模板中获取属性集名称。我可以通过$_product->getAttributeText('attribute')获取属性值,但如何获取属性集名称?我想只显示属于某个属性集属性。
$_product->getAttributeText('attribute')
d5vmydt91#
请尝试以下代码:
$entityTypeId = Mage::getModel('eav/entity') ->setType('catalog_product') ->getTypeId(); $attributeSetName = 'Default'; $attributeSetId = Mage::getModel('eav/entity_attribute_set') ->getCollection() ->setEntityTypeFilter($entityTypeId) ->addFieldToFilter('attribute_set_name', $attributeSetName) ->getFirstItem() ->getAttributeSetId(); echo $attributeSetId;
在following article中查找有关属性集的更多信息。谢啦,谢啦
fivyi3re2#
乔的回答需要做几处修改才能奏效。首先,它应该是$_product而不是$product,其次,最后一行中有一个错误的“)”。下面的代码应该是正确的:
$attributeSetModel = Mage::getModel("eav/entity_attribute_set"); $attributeSetModel->load($_product->getAttributeSetId()); $attributeSetName = $attributeSetModel->getAttributeSetName();
uoifb46i3#
如果用户决定稍后更改文本,与文本值进行比较可能会出现问题--这在Magento的属性集中很容易做到。另一个选择是使用底层ID,它永远不会更改。您可以通过使用以下命令查找数据库中attribute_set_id列的值来获取此值
select * from eav_attribute_set;
此编号也位于admin中的编辑链接中,该链接在下面以粗体显示
然后,您代码将简单地使用产品的属性。基于上面链接中的id 10,这将是
if (10 == $_product->getAttributeSetId()) { //Do work }
busg9geu4#
只要有产品对象,就可以访问其属性集,如下所示:
$attributeSetModel = Mage::getModel("eav/entity_attribute_set"); $attributeSetModel->load($product->getAttributeSetId()); $attributeSetName = $attributeSetModel->getAttributeSetName();
这将为您提供属性集的名称,然后您可以使用strcmp进行比较:
if(0 == strcmp($attributeSetName, 'My Attribute Set')) { print $product->getAttributeText('attribute'); }
7gcisfzg5#
为了更性感,你可以缩短为:
$attributeSetName = Mage::getModel('eav/entity_attribute_set')->load($_product->getAttributeSetId())->getAttributeSetName();
5条答案
按热度按时间d5vmydt91#
请尝试以下代码:
在following article中查找有关属性集的更多信息。
谢啦,谢啦
fivyi3re2#
乔的回答需要做几处修改才能奏效。
首先,它应该是$_product而不是$product,其次,最后一行中有一个错误的“)”。
下面的代码应该是正确的:
uoifb46i3#
如果用户决定稍后更改文本,与文本值进行比较可能会出现问题--这在Magento的属性集中很容易做到。另一个选择是使用底层ID,它永远不会更改。
您可以通过使用以下命令查找数据库中attribute_set_id列的值来获取此值
此编号也位于admin中的编辑链接中,该链接在下面以粗体显示
然后,您代码将简单地使用产品的属性。基于上面链接中的id 10,这将是
busg9geu4#
只要有产品对象,就可以访问其属性集,如下所示:
这将为您提供属性集的名称,然后您可以使用strcmp进行比较:
7gcisfzg5#
为了更性感,你可以缩短为: