首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用EAV AddAttribute设置默认值

如何使用EAV AddAttribute设置默认值
EN

Stack Overflow用户
提问于 2012-03-16 17:30:24
回答 3查看 9.3K关注 0票数 3

我想在magento中为我的产品设置一个新的属性集。此属性应为从某些选项中选择的类型。

代码语言:javascript
复制
$installer->addAttribute('catalog_product', 'reserve', array(
    'backend_label'     => 'Attribute Reserve',
    'type'              => 'varchar',
    'input'             => 'select',
    #'backend'          => 'eav/entity_attribute_source_boolean',
    'frontend'          => '',
    'source'            => '',
    #'default'          => 1,
    'global'            => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
    'visible'           => true,
    'required'          => false,
    'user_defined'      => true,
    'searchable'        => false,
    'filterable'        => false,
    'comparable'        => false,
    'visible_on_front'  => false,
    'visible_in_advanced_search' => false,
    'unique'            => false,
    'option' => array(
        'value' => array( 
            'optionone' => array( 'O' ),
            'optiontwo' => array( 'P' ),
            'optionthree' => array( 'Kein Angabe' ),
        )
    ),
));

如何将optionthree设置为默认值?

EN

回答 3

Stack Overflow用户

发布于 2012-10-01 22:57:43

也有同样的问题。我的解决方案是:

代码语言:javascript
复制
$installer->addAttribute('catalog_product', 'reserve', array(
    'backend_label'     => 'Attribute Reserve',
    'type'              => 'int',
    'input'             => 'select',
   #'backend'           => 'eav/entity_attribute_source_boolean',
    'frontend'          => '',
    'source'            => 'eav/entity_attribute_source_table',
    'global'            => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
    'visible'           => true,
    'required'          => false,
    'user_defined'      => true,
    'searchable'        => false,
    'filterable'        => false,
    'comparable'        => false,
    'visible_on_front'  => false,
    'unique'            => false,
    'visible_in_advanced_search' => false,

    'option' => array(
        'value' => array( 
            'optionone'   => array( 'O' ),
            'optiontwo'   => array( 'P' ),
            'optionthree' => array( 'Kein Angabe' ),
        )
    ),
));

注意不同的类型(int而不是varchar)和源(eav/entity_attribute_source_table)。这是Magento表示典型select属性的方式。现在,您可以像这样设置默认值:

代码语言:javascript
复制
 $model = Mage::getModel('eav/entity_attribute')
     ->load($installer->getAttributeId('catalog_product', 'reserve'));
 $model
     ->setDefaultValue($model->getSource()->getOptionId('Keine Angabe'))
     ->save();
票数 7
EN

Stack Overflow用户

发布于 2012-03-16 18:14:24

请使用以下脚本:-

代码语言:javascript
复制
$installer->addAttribute('catalog_product', 'reserve', array(
    'backend_label'     => 'Attribute Reserve',
    'type'              => 'varchar',
    'input'             => 'select',
    #'backend'          => 'eav/entity_attribute_source_boolean',
    'frontend'          => '',
    'source'            => '',
    'global'            => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
    'visible'           => true,
    'required'          => false,
    'user_defined'      => true,
    'searchable'        => false,
    'filterable'        => false,
    'comparable'        => false,
    'visible_on_front'  => false,
    'unique'            => false,
    'visible_in_advanced_search' => false,

    'option' => array(
        'value' => array( 
            'optionone'   => array( 'O' ),
            'optiontwo'   => array( 'P' ),
            'optionthree' => array( 'Kein Angabe' ),
        )
    ),
    /**
     * This will set the default values,
     * as "array" data type is being used to set proper default value
     */
    'default' => array(
        'optionthree'
    ),
));

希望能有所帮助。

票数 4
EN

Stack Overflow用户

发布于 2012-03-16 17:41:27

导航到Catalog >Manage Attributes以创建新属性,并导航到manage Attributes stes以创建新属性集。

请查看截图

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9734725

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档