7

我想使用 ajax 调用 PHP 文件,在该 PHP 中我将通过 ajax 调用下订单。但是当我使用该文件中的 app/Mage.php 时它会引发错误

require_once '../../../../../../../../../../app/Mage.php';    
$customer = Mage::getModel('customer/customer');

然后它说

致命错误:在第 432 行的 app\Mage.php 中的非对象上调用成员函数 getModelInstance()

谁能帮帮我吗???

4

5 回答 5

39

您提出的解决方案不是最优的。您尚未初始化 Magento,因此尚未加载模块 XML,并且工厂模式不起作用。

只需使用以下任一:

Mage::init(); // 1.5+ 

或者

Mage::app(); // (pretty much anything) below 1.5

在使用 getModel 之前。

于 2011-08-22T09:42:36.323 回答
3

您应该首先初始化 Magento 框架:

/* Store or website code */
$mageRunCode = isset($_SERVER['MAGE_RUN_CODE']) ? $_SERVER['MAGE_RUN_CODE'] : '';

/* Run store or run website */
$mageRunType = isset($_SERVER['MAGE_RUN_TYPE']) ? $_SERVER['MAGE_RUN_TYPE'] : 'store';

Mage::init($mageRunCode, $mageRunType, array());
于 2011-08-22T09:44:19.397 回答
1

我得到了同样的错误信息。解决方案不同。我忘记将 magento 文件夹的权限授予 Apache。

chown -R apache:apache magento
于 2014-06-03T11:40:46.620 回答
1

你需要初始化magento。最安全的初始化方法是在实际调用模型之前使用初始化程序

法师::init();

$customer = Mage::getModel('customer/customer');

于 2013-05-15T15:00:30.410 回答
0

我个人已经通过使用解决了它

$customer = new Mage_Customer_Model_Customer();

而不是使用

$customer = Mage::getModel('customer/customer');

于 2015-02-22T03:57:53.230 回答