5

モジュールアップグレードスクリプト内にプログラムでカスタム属性を追加しようとしています。スクリプトは正常に実行され、新しい属性が作成されます(つまり、スクリプトが実行されると、Magento管理者リストの[カタログ]->[属性]->[属性の管理]に表示されます)。

最初はクラスを使用していました(ここMage_Eav_Model_Entity_Setupで推奨されているように、「visible」フィールドも「apply_to」フィールドも意図したとおりに設定されていませんでした(「visible」は常にfalseであり、「apply-to」は使用するのではなく「すべての製品タイプ」のままでした)スクリプトで提供されるリスト)。

次に、これを見つけまし。これは、代わりに使用する必要があることを説明しMage_Catalog_Model_Resource_Setup、「apply_to」の問題を修正しました。

しかし、それでも属性の「visible」属性をtrueに設定することはできません。誰かが「visible」属性がまだ設定されていない理由を誰かが知っているなら、私は聞いてとても感謝しています、ありがとう!

これが私のアップグレードスクリプトコードです:

$updater = $this;      // $this is class Mage_Eav_Model_Entity_Setup
$updater->startSetup();
$updater->addAttribute('catalog_product', 'my_test_attribute', array(
    'label'             => 'My Test Attribute',
    'type'              => 'int',
    'input'             => 'select',
    'global'            => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
    'apply_to'          => 'simple,configurable',
    'group'             => 'General',
    'visible'           => true,
    'required'          => true,
    'user_defined'      => true,        
));
$updater->endSetup();

Windows7のWAMPでMagento1.7.0.1を実行しています。

4

2 に答える 2

1

これを解決しました。必要なのは、「visible」だけでなく、「visible_on_front」属性も設定することでした。つまり、上記のスクリプトにこの行を追加すると、次のように機能します。

'visible_on_front'  => true,
于 2012-11-12T12:23:13.490 に答える
0

この属性はブール値ではなく、整数です。1 = true 0 = false; を設定しました。

于 2012-11-09T18:27:48.710 に答える