コレクションが画像属性をロードしたかどうかを確認します。
$productId = 1234;
$product = Mage::getModel('catalog/product')
->load($productId);
echo (string)Mage::helper('catalog/image')->init($product, 'image')->resize(75, 75);
echo (string)Mage::helper('catalog/image')->init($product, 'small_image')->resize(75, 75);
echo (string)Mage::helper('catalog/image')->init($product, 'thumbnail')->resize(75, 75);
これがある種のプレースホルダーのみを提供する場合、コレクションは画像をロードしませんでした。
次のようにコレクションを拡張できます
$collection = Mage::getModel('catalog/product')->getCollection()
->addAttributeToSelect('small_image') //or
->addAttributeToSelect('thumbnail') //or
->addAttributeToSelect('image');
または、代わりにメディア構成を使用します。
$prodImage = Mage::getModel('catalog/product_media_config')->getMediaUrl($product->getThumbnail());
または使用
$prodImage = Mage::getResourceSingleton('catalog/product')->getAttributeRawValue($productId, 'image', Mage::app()->getStore());
フラットテーブル
平らなテーブルが原因である可能性があります。フラット テーブルが有効になっているかどうかを確認します。
システム > 構成 > カタログ > カタログ > フロントエンド > フラット カタログ製品を使用
はいの場合は、フラット テーブルにイメージ属性が含まれているかどうかを確認します。
describe catalog_product_flat_1; // number varies depending on store
イメージ属性がフラット テーブルの一部でない場合は、次のコードを app/etc/config.xml に追加して、テーブルに追加します。
<config>
<frontend>
<product>
<collection>
<attributes>
<image />
</attributes>
</collection>
</product>
</frontend>
</config>