31

Magento 製品ビュー テンプレートで属性セット名を取得しようとしています。で属性値を取得できますが$_product->getAttributeText('attribute')、属性セット名を取得するにはどうすればよいですか?

特定の属性セットに属している場合にのみ属性を表示したいと思います。

4

5 に答える 5

25

よりセクシーにするために、次のように短縮できます。

$attributeSetName = Mage::getModel('eav/entity_attribute_set')->load($_product->getAttributeSetId())->getAttributeSetName();
于 2011-06-29T17:36:07.643 に答える
14

次のコードを試してください。

$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;

属性セットの詳細については、次の記事を参照してください。

ありがとう

于 2011-11-18T13:34:21.703 に答える
1

ジョーの答えが機能するには、いくつかの変更が必要です。

まず、$product ではなく $_product である必要があります。次に、最後の行に誤った ')' があります。

次のコードは正しいはずです。

$attributeSetModel = Mage::getModel("eav/entity_attribute_set");
$attributeSetModel->load($_product->getAttributeSetId());
$attributeSetName = $attributeSetModel->getAttributeSetName();
于 2011-03-11T15:44:28.547 に答える
0

ユーザーが後でそのテキストを変更することを決定した場合、テキスト値と比較すると問題が発生する可能性があります。これは、属性セットの Magento で簡単に実行できます。もう 1 つのオプションは、変更されることのない基になる id を代わりに使用することです。

これを取得するには、次を使用してデータベースの attribute_set_id 列の値を検索します。

select * from eav_attribute_set;

この番号は、下の太字の管理者の編集リンクにもあります

http : //.../index.php/admin/catalog_product_set/edit/id/10/key/6fe89fe2221cf2f80b82ac2ae457909ce04c92c51716b3e474ecad672a2ae2f3/

コードは、製品のそのプロパティを使用するだけです。上記のリンクの 10 の ID に基づいて、これは次のようになります。

if (10 == $_product->getAttributeSetId()) {
  //Do work
}
于 2012-02-25T10:28:55.537 に答える