0

我已经使用添加了自定义属性

$setup->addAttribute('customer','default_business',array(
      'type'               => 'int',
        'label'              => 'Default Business Address',
       'input'              => 'text',
       'backend'            => 'orancustomer/customer_attribute_backend_business',
        'required'           => false,
       'sort_order'         => 200,
      'visible'            => 0,
      'global' =>1,
        'user_defined' => 1,));


$attr = $eavConfig->getAttribute('customer', 'default_business');
$attr->setData(  'used_in_forms', array('customer_account_create', 'customer_account_edit', 'checkout_register')///*'adminhtml_customer',*/
)->save(); 

它按预期工作。但是当我试图删除它时,

$installer->removeAttribute('customer', 'default_business');

它已成功从 eav_attribute 表中删除。但在管理部分我收到以下错误致命错误:调用 D:\xampp\htdocs\magoran\app\code\core\Mage\Eav\Model\Entity 中的非对象上的成员函数 getBackend() \Collection\Abstract.php 在第 515 行

当我尝试调试时,我发现它仍在搜索 default_business 属性。它仍在管理客户页面中搜索属性。这是我在调试过程中发现的查询

 SELECT `eav_attribute`.* FROM `eav_attribute` WHERE (`eav_attribute`.`attribute_code`='oran_company') AND (entity_type_id = :entity_type_id)
 BIND: array (
 ':entity_type_id' => '1', 
 )
4

1 回答 1

0

我发现这是由于 config.xml 中的字段集。在我从自定义模块的 config.xml 的字段集中将其删除后,该错误已修复,另外还有一件事我发现在字段集中添加新添加的属性不是强制性的。

于 2013-02-14T07:55:07.317 回答