【问题标题】:Programmatically created attribute appears in database, but not in Magento back-end以编程方式创建的属性出现在数据库中,但不在 Magento 后端
【发布时间】:2014-05-07 20:10:54
【问题描述】:

在一个新的 Magento 扩展中,我正在创建一些自定义产品属性。 但是当我测试扩展时,属性不会出现在后端。 当我查看数据库时,我看到属性已创建...

我是否可能忘记了我的 Setup.php 中的某些内容?

这是我的代码: /Model/Resource/Eav/Setup.php

/**
 * @return array
 * An array with product entities: medipim_version
 */
public function getDefaultEntities()
{

    /*$setup = new Mage_Eav_Model_Entity_Setup('core_setup');
    $setup->removeAttribute('catalog_product','medipim_version');*/
    //
    return array(
        'catalog_product' => array(
            'entity_model'                  =>  'catalog/product',
            'attribute_model'               =>  'catalog/resource_eav_attribute',
            'table'                         =>  'catalog/product',
            'additional_attribute_tabel'    =>  'catalog/eav_attribute',
            'entity_attribute_collection'   =>  'catalog/product_attribute_collection',
            'attributes'    => array(
                'medipim_version' => array(
                    'group'                             =>  'Medipim data',
                    'label'                             =>  'Version',
                    'type'                              =>  'varchar',
                    'input'                             =>  'text',
                    'default'                           =>  '',
                    //'class'                             =>  '',
                    //'backend'                           =>  '',
                    //'frontend'                          =>  '',
                    //'source'                            =>  '',
                    'global'                            =>  Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_STORE,
                    'visible'                           =>  1,
                    'required'                          =>  0,
                    'user_defined'                      =>  1,
                    //'searchable'                        =>  0,
                    //'filterable'                        =>  0,
                    //'comparable'                        =>  0,
                    'visible_on_front'                  =>  1,
                    'is_html_allowed_on_front'          =>  0,
                    'used_in_product_listing'           =>  1,
                    //'visible_in_advanced_search'        =>  0,
                    'unique'                            =>  0,
                ),
            ),
        ),
    );
}
 }

sql/medipim_setup_product_entities/mysql4-install-0.1.0.php

<?php

$installer = $this;

$installer->installEntities();

etc/config.xml

    <?xml version="1.0"?>
    <config>
        <modules>
            <Crmart_Medipim>
                <version>0.1.0</version>
            </Crmart_Medipim>
        </modules>
        <global>
            <helpers>
                <medipim>
                    <class>Crmart_Medipim_Helper</class>
                </medipim>
            </helpers>
            <models>
                <medipim>
                    <class>Crmart_Medipim_Model</class>
                </medipim>
            </models>
            <resources>
                <medipim_setup_product_entities>
                    <setup>
                        <module>Crmart_Medipim</module>
                        <class>Crmart_Medipim_Model_Resource_Eav_Setup</class>
                    </setup>
                </medipim_setup_product_entities>
                <medipim_write>
                    <connection>
                        <use>core_write</use>
                    </connection>
                </medipim_write>
                <medipim_read>
                    <connection>
                        <use>core_read</use>
                    </connection>
                </medipim_read>
            </resources>
        </global>
    </config>

解决方案

在我的设置课程中,我输入了“additional_attribute_tabel”而不是“additional_attribute_table”。

【问题讨论】:

  • Crmart_Medipim_Model_Resource_Eav_Setup 是否扩展 Mage_Catalog_Model_Resource_Setup
  • 是的。 class Crmart_Medipim_Model_Resource_Eav_Setup extends Mage_Catalog_Model_Resource_Setup {
  • 但是如果我在表eav_attribute 中查看我的数据库,我可以找到属性。但它没有显示在我的后端。 cl.ly/image/1x032r0t160H
  • 重新安装。删除eav_attribute 中的属性行,然后从core_resource 中删除指向medipim_setup_product_entities 的行,然后仅使用安装程序进行安装:magento.stackexchange.com/a/5191/21。我不熟悉您安装属性的方式。
  • 好的。解决了。 :) 我在安装类中输入了additional_attribute_tabel 而不是additional_attribute_table

标签: php magento attributes


【解决方案1】:

我解决了。

在我的设置类中,我输入了“additional_attribute_tabel”而不是“additional_attribute_table”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-07
    • 1970-01-01
    • 2016-08-11
    相关资源
    最近更新 更多