我刚刚将 Magento 安装从 1.4.1.0 升级到 1.7.0.2。现在尝试编辑类别时出现错误。
错误说:
Fatal error: Call to a member function getAttributeCode() on a non-object in /home/.../domains/.../public_html/app/code/core/Mage/Adminhtml/Block/Catalog/Category/Tab/Attributes.php on line 137
我在论坛上发现了一些关于同一问题的主题,但没有一个有解决方案。在这里也找不到解决方案。
当我将旧版本的 Attributes.php 与新版本进行比较时,唯一的区别是这个代码块(第 132 到 145 行):
if ($this->getCategory()->getLevel() == 1) {
$fieldset->removeField('custom_use_parent_settings');
} else {
if ($this->getCategory()->getCustomUseParentSettings()) {
foreach ($this->getCategory()->getDesignAttributes() as $attribute) {
if ($element = $form->getElement($attribute->getAttributeCode())) {
$element->setDisabled(true);
}
}
}
if ($element = $form->getElement('custom_use_parent_settings')) {
$element->setData('onchange', 'onCustomUseParentChanged(this)');
}
}
如果我注释掉这整个块,一切似乎都很好。但是有更好的解决方法吗?我实际上不明白这个代码块的目的。