0

重複の可能性:
Magentoeコマースで特定のカテゴリから商品を取得する方法

デフォルトの「新製品」ブロックと同様に、Magento 1.7の製品のグリッド(名前、説明価格、リンク付きの小さな画像)を表示するテンプレート(.phtmlファイル)を作成したいと思います。これが私がこれまでに持っているものです...

<?php

 $category=Mage::getModel('catalog/category')->load(4);  
 $category=$category->getProductCollection();
 foreach($category->getAllIds() as $id)
{
    $product=Mage::getModel('catalog/product')->load($id);
    echo $product->getName()."<br/>";
    echo $product->getUrl()."<br/>";
    echo $product->getImageUrl()."<br/>";
    echo $product->getImageDescription()."<br/><br/>";
}
4

1 に答える 1

0

コードにいくつかの間違いがあります。それらを強調しておきましょう。

  1. $category=$category->getProductCollection();-これは非常に悪い習慣です。商品のコレクションを、以前はカテゴリであった変数に割り当てています。そのようなコードで迷子になるのは簡単です。変数には意味のある命名規則を使用することを忘れないでください。このようなものでなければなりません$productCollection=$category->getProductCollection();

  2. すでに持っているコレクションをループする代わりに、IDの配列を取得し、それらをループして、各ループ中にオブジェクトをロードします。これにより、メモリリークが発生し、コードの実行に非常に長い時間がかかります。ステートメントは次のforeachようになりますforeach ($productCollection as $product)

  3. ここでは実際に質問をしていません。グリッドを作成してコードを投稿するとおっしゃいましたが、どこに問題がありますか?

  4. 製品グリッドを作成する場合は、Magentoコアカタログモジュールでどのように行われるかを確認してください:ブロックMage_Catalog_Block_Product_Listおよびテンプレートcatalog / product / list.phtml

于 2012-09-13T19:26:25.973 に答える