モジュールアップグレードスクリプト内にプログラムでカスタム属性を追加しようとしています。スクリプトは正常に実行され、新しい属性が作成されます(つまり、スクリプトが実行されると、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を実行しています。