2

セットアップ スクリプトから属性を追加しようとしています。属性が追加されても、一部のオプションの値がセットアップ スクリプトで指定された値とは異なります。

/* @var $installer Mage_Eav_Model_Entity_Setup */
$installer = $this;

$installer->startSetup();


$entityTypeId = 'catalog_product';
$attributeCode ='dz_video';

$data = array(
    'type'=>'textarea',
    'input'=>'text',
    'label'=>'Video',
    'is_required' =>'0',
    'is_unique' =>'0',
    'is_global' =>Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
    'is_comparable'=>'0',
    'is_wysiwyg_enabled'=>'0',
    'is_searchable'=>'0',
    'is_used_for_price_rules'=>'0',
    'is_html_allowed_on_front'=>'1',
    'is_visible_on_front'=>'1',
    'used_in_product_listing'=>'0',
    'used_for_sort_by'=>'0',
    'user_defined'=>'1',
    'is_configurable'=>'1'
);

$installer->addAttribute($entityTypeId,$attributeCode,$data);

たとえば、「is_required」に指定された値は 0 ですが、管理者の「必須」オプションは「はい」に設定されています

4

2 に答える 2

3

これは、EAV セットアップ クラスでのやや奇妙な動作です。addAttribute を使用すると、データ配列が再マップされます。これは updateAttribute には当てはまりません。クラス Mage_Eav_Model_Entity_Setup とその _prepareValues() メソッドを確認してください。たとえば、 is_required は、期待どおりに機能するために単に「必須」である必要があります!

于 2013-01-04T08:36:37.033 に答える
2

mpaepperの答えは正しいです。また、場合によっては、1 または 0 ではなく、値を true または false にする必要があります。例えば:

'required' => false,
于 2013-01-04T09:00:09.127 に答える