gpt4 book ai didi

magento - 通过安装程序脚本删除 Magento 中的自定义属性

转载 作者:行者123 更新时间:2023-12-02 14:50:33 24 4
gpt4 key购买 nike

我的安装程序脚本中有以下代码,现在需要通过安装程序脚本删除 is_school 属性,我的代码正确吗?

// code within existing installer script (this works fine)
$installer->addAttribute("customer", "is_school", array(
"type" => "int",
"backend" => "",
"label" => "Is School?",
"input" => "int",
"source" => "",
"visible" => false,
"required" => false,
"default" => "",
"frontend" => "",
"unique" => false,
"note" => ""
));

我打算删除该属性的方法 - 这看起来正确吗?

$installer->startSetup();
$installer->removeAttribute('customer', 'is_school');
$installer->endSetup();

删除属性时还需要什么吗?

最佳答案

$setup = new Mage_Eav_Model_Entity_Setup('core_setup');

$custAttr = 'is_school';

$setup->removeAttribute('customer', $custAttr);
$setup->endSetup();

请检查类Mage_Eav_Model_Entity_Setup扩展了Mage_Core_Model_Resource_Setup

public function removeAttribute($entityTypeId, $code)
{
$mainTable = $this->getTable('eav/attribute');
$attribute = $this->getAttribute($entityTypeId, $code);
if ($attribute) {
$this->deleteTableRow('eav/attribute', 'attribute_id', $attribute['attribute_id']);
if (isset($this->_setupCache[$mainTable][$attribute['entity_type_id']][$attribute['attribute_code']])) {
unset($this->_setupCache[$mainTable][$attribute['entity_type_id']][$attribute['attribute_code']]);
}
}
return $this;
}

它有两个参数 - 第一个是实体代码,第二个是属性代码

关于magento - 通过安装程序脚本删除 Magento 中的自定义属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23775867/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com