Magento:输入类型"文字"在输入类型列表中找不到

时间:2015-10-01 09:37:43

标签: magento

当我尝试从Catalog-> Attributes-> Manage Attributes创建新的产品属性时,它会显示错误"输入类型" text"在输入类型列表中找不到"。 "保存产品属性时出错。"

任何属性类型都会发生;文字,下拉,多选等...

system.log中也有一些错误:

ERR (3): Recoverable Error: Argument 1 passed to Zend_Validate_InArray::setHaystack() must be of the type array, null given, called in lib/Zend/Validate/InArray.php on line 96 and defined in lib/Zend/Validate/InArray.php on line 122
ERR (3): Warning: in_array() expects parameter 2 to be array, null given  in lib/Zend/Validate/InArray.php on line 196

2 个答案:

答案 0 :(得分:3)

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中的整个定义。

答案 1 :(得分:1)

转到数据库的core_congif_data表并删除路径常规条目。试试这个肯定会有效的解决方案