Magento致命错误:调用成员函数setData()

时间:2015-06-12 02:22:05

标签: php wordpress magento migration

我正在帮助我的一位朋友将他们的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的子目录。

我更改了基本网址以反映当然。

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

1 个答案:

答案 0 :(得分:0)

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

  • PHP
  • PHP-MySQL的
  • PHP-mcrypt的
  • PHP-散列
  • php-xml(Magento 1.4.xx将需要)
  • PHP-GD
  • PHP-PDO
  • PHP-mhash
  • PHP-皂

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

您可以使用<?php phpinfo(); ?>

检查一切是否正确

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