【问题标题】:Magento Fatal error: Call to a member function setData()Magento 致命错误:调用成员函数 setData()
【发布时间】:2015-06-12 02:22:04
【问题描述】:

我正在帮助我的一个朋友将他们的 Magento 商店迁移到新服务器,但现在遇到了一些问题。

不确定这是否有任何区别,但为了了解一些背景知识,我已将 Magento 商店放在他们新的 WordPress 网站的子目录中。我不认为这是问题所在,但我想我会把它扔在这里以防万一。

我遇到的问题是,当您尝试将商品添加到购物车时,我收到以下错误:

致命错误: 在第 612 行的 ...app/code/core/Mage/Sales/Model/Quote/Item.php 中对非对象调用成员函数 setData()

这是发生错误时调用的方法:

public function addOption($option)
{
    if (is_array($option)) {
        $option = Mage::getModel('sales/quote_item_option')->setData($option)
            ->setItem($this);
    }
    elseif (($option instanceof Varien_Object) && !($option instanceof Mage_Sales_Model_Quote_Item_Option)) {
        $option = Mage::getModel('sales/quote_item_option')->setData($option->getData())
           ->setProduct($option->getProduct())
           ->setItem($this);
    }
    elseif($option instanceof Mage_Sales_Model_Quote_Item_Option) {
        $option->setItem($this);
    }
    else {
        Mage::throwException(Mage::helper('sales')->__('Invalid item option format.'));
    }

    if ($exOption = $this->getOptionByCode($option->getCode())) {
        $exOption->addData($option->getData());
    }
    else {
        $this->_addOptionCode($option);
        $this->_options[] = $option;
    }
    return $this;
}

另一件奇怪的事,我最初在本地机器上设置了整个站点,当在本地设置中将商品添加到购物车时,Magento 告诉我启用已经启用的 cookie。

在这一点上,我不知道问题可能是什么。我没有在这个网站上写过任何代码,也没有修改过任何代码。

其中一个 xml 文件中是否存在需要更改的设置?

站点的域没有改变,只有服务器,而且 Magento 存储现在位于一个名为 /shop 的子目录中,而不是位于根目录中。

当然,我更改了基本网址以反映这一点。

任何帮助将不胜感激。认为这将非常简单,因为我只是将站点迁移到新服务器。

【问题讨论】:

  • 这个错误意味着 Mage::getModel('sales/quote_item_option') 没有返回一个对象,因此你不能调用它的方法 setData。我会看看法师班是做什么的

标签: php wordpress magento migration


【解决方案1】:

当您将 magento 移动到另一台服务器时,您必须检查新服务器是否满足所有要求:

  • PHP
  • php-mysql
  • php-mcrypt
  • php-hash
  • php-xml(Magento 1.4.xx 需要)
  • php-gd
  • php-pdo
  • php-mhash
  • php-soap

    yum install php php-mysql php-mcrypt php-xml php-gd php-pdo php-mhash php-soap

您可以使用<?php phpinfo(); ?>检查一切是否正确

此外,您可以尝试再次运行设置(您不会丢失数据),只需删除/重命名文件 /app/etc/local.xml。安装程序将检测需求是否有问题

【讨论】:

    猜你喜欢
    • 2015-08-07
    • 2012-09-05
    • 1970-01-01
    • 2011-08-22
    • 2017-06-22
    • 2012-09-29
    • 2014-02-05
    • 2014-04-29
    • 2015-09-14
    相关资源
    最近更新 更多