在非对象上调用成员函数setAttribute()

时间:2014-09-18 09:27:23

标签: magento

当我尝试通过“管理”面板添加客户地址时,会显示以下错误:

  

致命错误:在a上调用成员函数setAttribute()   非对象    /home1/web/public_html/app/code/core/Mage/Eav/Model/Attribute/Data.php 的   在线 80

enter image description here

如何解决此错误。

3 个答案:

答案 0 :(得分:2)

我有同样的问题, 解决方案来自:Abstract/Data.php issue when checking out or creating account

  
      
  1. 请找到customer_eav_attribute并记下此表中的所有属性ID。
  2.   
  3. 然后找到eav_attribute表并检查此表中的所有属性id。
  4.   
  5. 检查frontend_input列是否为空白,或者是否为从customer_eav_attribute表中获取的属性id的null值。   4.如果列frontend_input的任何属性都有空值或空值,则在其位置添加任何输入类型。
  6.   
  7. 然后检查问题。
  8.   

答案 1 :(得分:1)

这可能是由许多不同的属性造成的。

我在第79行var_dump($attribute->getAttributeCode());上添加了Data.php,并在点击保存后查看了响应。在数据库中,我在表eav_attribute中搜索此属性。

在我的情况下,frontend_input无效。我将其更改为“文本”,现在它可以正常工作。

答案 2 :(得分:-1)

添加(在添加一个地址之后但在按保存客户端之前):

app\code\core\Mage\Eav\Model\Attribute\Data.php - line 80 var_dump(get_class_methods($attribute));
exit; 

如果在列表中确实存在此方法setAttribute()

,请在该请求中检入控制台