【发布时间】: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