1

エクステンションでは、次のようにcatalog_product_viewページで製品コレクションを取得しています:

if (!$product = Mage::registry('product')) {
    return new Varien_Data_Collection();
}
$category = new Mage_Catalog_Model_Category();
$category->load($product->getCategoryId());
$collection = $category->getProductCollection();

また、このコレクションに属性を追加するにはどうすればよいですか?

たとえば、私はこのようなものを得ることができません

$collection->addAttributeToSelect('manufacturer');

コードでいくつかの属性を追加したい (これはレイアウトに追加された異なる属性である可能性があるため、id ではありません)、この属性でデータをグループ化します

thnx

4

2 に答える 2

1

特定のカテゴリの製品を直接取得する代わりに、製品コレクションをインスタンス化してフィルタリングすることができます。

if (!$product = Mage::registry('product')) {
    return new Varien_Data_Collection();
}
// get a product collection and filter it by category
$collection = Mage::getModel('catalog/product')->getCollection();
$collection->addCategoryFilter($product->getCategoryId());
// add the attributes you need
$collection->addAttributeToSelect('manufacturer');
$collection->setOrder('manufacturer', 'asc');
// load the collection and return it
$collection->load();
return $collection;

注意: ロード後にコレクションに属性を追加することはできません! さらに、明示的に呼び出す必要はありませんload()。コレクションはオンデマンドでロードされます。

お役に立てれば。

于 2012-05-19T10:39:44.310 に答える
0

これを試して

<?php echo $_product->getResource()->getAttribute('manufacturer')->getFrontend()->getValue($_product); ?>
于 2012-11-09T05:20:58.420 に答える