2

我有 Magento 1.7.0.2,当我尝试在管理面板中编辑客户帐户时出现此错误:致命错误:调用 /home/techspec/public_html/magento/ 中非对象上的成员函数 setRenderer()包括/src/Mage_Adminhtml_Block_Customer_Edit_Tab_Account.php 在第 77 行

 $attributes = $customerForm->getAttributes();
    foreach ($attributes as $attribute) {
        /* @var $attribute Mage_Eav_Model_Entity_Attribute */
        $attribute->setFrontendLabel(Mage::helper('customer')->__($attribute->getFrontend()->getLabel()));
        $attribute->unsIsVisible();
    }

    $disableAutoGroupChangeAttributeName = 'disable_auto_group_change';
    $this->_setFieldset($attributes, $fieldset, array($disableAutoGroupChangeAttributeName));

    $form->getElement('group_id')->setRenderer($this->getLayout()
        ->createBlock('adminhtml/customer_edit_renderer_attribute_group')
        ->setDisableAutoGroupChangeAttribute($customerForm->getAttribute($disableAutoGroupChangeAttributeName))
        ->setDisableAutoGroupChangeAttributeValue($customer->getData($disableAutoGroupChangeAttributeName)));

    if ($customer->getId()) {
        $form->getElement('website_id')->setDisabled('disabled');
        $form->getElement('created_in')->setDisabled('disabled');
    } else {
        $fieldset->removeField('created_in');
        $form->getElement('website_id')->addClass('validate-website-has-store');

即引用文件的第 67 到 87 行。希望有任何帮助。谢谢。

4

1 回答 1

5

看起来该属性group_id不在您的可编辑属性列表中。确保属性可见。使用此选择进行检查。

SELECT * FROM `eav_attribute` e 
LEFT JOIN `customer_eav_attribute` ce ON e.attribute_id = ce.attribute_id 
WHERE e.attribute_code = 'group_id'

查看 field 的值is_visible

如果您没有从上面的查询中得到任何结果,那么您就有麻烦了。

如果为 1,则该属性可能未设置为在管理表单中显示。获取attribute_id上一个查询的返回值并执行此操作。假设值为10

select * from customer_form_attribute where attribute_id = 10;

如果没有带form_code=的记录,adminhtml_customer那么您应该添加它。

于 2013-11-06T09:27:16.793 回答