2

したがって、このテンプレートには、各製品リストの横にあるcmsブロックがあります。

私はCMSブロックにこのコードを持っています:

{{block type="core/template" name="some_unique_name" template="myfolder/my_dynamic_php_content.phtml"}}

my_dynamic_php_content.phtmlのこれ:

<?php echo $_product->getData('product_brand'); ?>

そして私はエラーを受け取ります:

1行目の/home/magento/public_html/shorepowerinc.com/app/design/frontend/fortis/default/template/myfolder/my_dynamic_php_content.phtmlにある非オブジェクトのメンバー関数getData()を呼び出します。

私は初心者なので、ここで何が起こっているのか説明していただければ幸いです。

4

1 に答える 1

2

これには2つの欠けているものがあります。

1)現在の製品のモデルをロードする必要があります

2)属性を表示するときに間違った構文を使用しました。

my_dynamic_php_content.phtmlブロックに現在の製品モデルをロードするには、これをテンプレートの上部に追加します。

<?php       
   $_prodID = Mage::registry('current_product')->getId();
   $_product = Mage::getModel('catalog/product')->load($_prodID );
?> 

次に、テンプレートに属性を出力します。

<?php echo $_product->getProduct_brand() ?>

(使用されているのはキャメルケースであることに注意してください。ただし、属性を設定するときにアンダースコアを使用した場合は、アンダースコアを保持します)。

編集

上記の回答は機能しますが、アンダースコアはによって処理されVarien_Object::_underscore()、一般的な規則は$ _product-> getData('product_brand')または$ _product-> getProductBrand()のいずれかを使用することです。この情報については、以下のコメントのベンマークスに感謝します。

于 2012-12-04T19:13:40.187 に答える