3

このコードをmagento 1.7.0で動作させようとしています...

マジェントのプレースホルダー画像のみが表示されます...

「image」を「small_image」に変更すると正常に動作します

すべてがバックエンドで設定され、製品画像のラジオボタンが選択されています...キャッシュもクリアしました...

これはlist.phtmlファイルで起こっています...

誰かが私が間違っていること、またはなぜ機能しないのかを教えてもらえますか.

$_item が定義されていないため、オブジェクト以外のエラーが呼び出されます...

ここに回答へのリンクがあります

Magento で基本製品イメージを取得する

<?php echo $this->helper('catalog/image')->init($_product, 'image')->resize(171, 259);
4

5 に答える 5

1

このスレッドは最初に Google に表示されるので、ここに私の経験を記載します。上記の解決策は、view.phtml/media.phtml テンプレートでは機能しません。属性はすでにロードされています。私の場合、サーバーのメモリ制限が画像のサイズ変更プロセスに十分ではなかったため、機能しませんでした。デフォルトのメディア テンプレート (resize(56)) は、既に生成されているデフォルト サイズを使用するため、機能しました。これを修正するために、index.php に「ini_set('memory_limit', '1024M')」を追加しました。

私のphp.iniはすでに1024Mに設定されているので、すぐには思いつきませんでした。Magento は .htaccess (php 値 memory_limit -1) でそれをオーバーライドしますが、これはどういうわけか私の構成では機能しません。

于 2015-05-30T08:24:41.110 に答える
1

フォーラムで見つけられなかったものがあります。だから私は問題についての私の解決策を共有します、あなたは変更する必要があります
Mage::setIsDeveloperMode(true);:Mage::setIsDeveloperMode(false);

于 2015-03-22T09:11:48.623 に答える
0

コレクションが画像属性をロードしたかどうかを確認します。

$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>
于 2017-01-06T12:59:52.777 に答える