1

製品の新しいYes/No属性を作成しました。製品モデルを拡張してカスタムロジックを実行しましたが、カスタム関数はどこでも機能しています。

最初にカスタム属性値を取得しようとしたときに、いくつかの問題が発生しました。Magentoはそれをロードしていなかったので、$ product-> getMyAttributeName()の呼び出しは何もしませんでした。製品ビューでは、次の追加機能で動作するようになりました。

public function getAttrVal($attr_name)
{
    return $this->getResource()->getAttribute($attr_name)->getFrontend()->getValue($this);
}

そのため、フロントエンドで製品を表示するときにうまく機能しました。設定されている場合は割り当てられた値をフェッチし、設定されていない場合はデフォルトをフェッチします。

カテゴリ(そのカテゴリ内のすべての製品のグリッド)を表示すると、まったく同じコードが実行されています。ただし、getAttrVal()関数は、製品にこの値を明示的に設定した場合でも、常にデフォルト値を返します。

私の人生では、属性が製品ビューに正しく読み込まれる理由を理解することはできませんが、同じ正確なコードを実行しているにもかかわらず、カテゴリビューは常にデフォルト値を取得します。何かご意見は?

4

1 に答える 1

1

Magentoは拡張可能なカタログ属性にEAVモデルを使用しているため、すべての属性がすべてのページに引き継がれるとは限りません。属性の「カタログに表示」およびその他の関連変数をいじってみてください。問題が解決する場合があります。そうでない場合は、そう言ってください。他のことを試すことができます。

お役に立てば幸いです。

ありがとう、ジョー

于 2010-06-09T23:27:14.957 に答える