问题描述:在magento后台添加属性的时候,提示非法,没有可用的select选项,无法成功建立属性。经研究发现,根本原因在于数据库中多了一个字段值,均为该字段值导致的。
您可能在core_config_data表格中有一个条目path=”general”。定义general/validator_data/input_types来自app/code/core/Mage/Eav/etc/config.xml但数据库配置条目将覆盖它。
这是一个查询来找到它: SELECT * FROM core_config_data WHERE path=”general”;
这是一个查询删除(修复)它: DELETE FROM core_config_data WHERE path=”general”;
问题是这个代码返回一个空值$haystack,所以你会得到一个错误Input type “%value%” not found in the input types list.它会发生任何输入类型。
$helper = Mage::helper('eav');
$haystack = $helper->getInputTypesValidatorData();
const XML_PATH_VALIDATOR_DATA_INPUT_TYPES = 'general/validator_data/input_types';
public function getInputTypesValidatorData()
{
return Mage::getStoreConfig(self::XML_PATH_VALIDATOR_DATA_INPUT_TYPES);
}
那是因为Mage::getStoreConfig('general/validator_data/input_types');返回null。发生这种情况是因为这个“一般”行core_config_data正在覆盖XML中的整个定义。