わからない!
製品属性のリストをlist.phtmlページの配列に取得しようとしています。私はすべてを試しました。私はを使用する多くのソリューションを見てきました
$attributes = $product->getAttributes();
しかし、これを機能させることはできません。空白のページが表示されるだけです。これまで何時間も費やしてきました...
Magentoバージョン1.4.2.0を使用しています
更新:これが私がやろうとしていることです:
$neededAttributes = Mage::helper('mymodule')->getNeededAttributes();
$attributes = $product->getAttributes();
foreach ($attributes as $attribute) {
if(in_array($attribute->getAttributeCode(), $neededAttributes)) {
$attributename = $attribute->getAttributeCode();
echo $attributename;
}
}
これは、design/adminhtml/default/default/catalog/product/helper /のgallery.phtmlファイルにあります
何らかの理由で、getAttributeCode関数に何も返させません。
目に見える値のみのリストが必要だと思います。属性は実際の値ではなく、記述子であるため、「値」と言います。以下は、Mage_Mage_Catalog_Block_Product_View_Attributes
の主な部分です。
$attributes = $product->getAttributes();
foreach ($attributes as $attribute) {
if ($attribute->getIsVisibleOnFront()) {
$value = $attribute->getFrontend()->getValue($product);
// do something with $value here
}
}
ただし、製品ビューページでattributes
ブロックとしてすでに宣言されているテンプレートcatalog/product/view/attributes.phtml
を変更/使用できるため、これを複製する必要はありません。
あなたの質問によると、代わりにMage::getResourceModel('catalog/product_attribute_collection')
を使用する必要があります。
_$productAttrs = Mage::getResourceModel('catalog/product_attribute_collection');
foreach ($productAttrs as $productAttr) { /** @var Mage_Catalog_Model_Resource_Eav_Attribute $productAttr */
var_dump($productAttr->getAttributeCode());
}
_
__data
_(getData()
)ストレージに属性があるとは限りません。また、属性を取得するために製品をロードする必要はありません。
それはかなり簡単で、利用可能な製品属性名の配列を提供します
$product = Mage::getModel('catalog/product')->load('product_id');
$attributeNames = array_keys($product->getData());
print_r($attributeNames);
属性オブジェクトコレクションが必要な場合は、
$product->getAttributes();
製品コレクションが必要な場合は、その後、各コレクションメンバーで前述の方法を実行できます。
Mage::getModel('catalog/product')->getCollection();