问题
I want to call a PHP file using ajax where in that PHP i will place order by the ajax call. But it throws error while i am using app/Mage.php from that file
require_once '../../../../../../../../../../app/Mage.php';
$customer = Mage::getModel('customer/customer');
then it says
Fatal error: Call to a member function getModelInstance() on a non-object in app\Mage.php on line 432
Can anyone please help me???
回答1:
Your proposed solution is not optimal. You have not initialized Magento so module XML is not loaded yet and the factory pattern does not work.
Simply use either:
Mage::init(); // 1.5+
or
Mage::app(); // (pretty much anything) below 1.5
before using getModel.
回答2:
You should initialize the Magento Framework first:
/* 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());
回答3:
you need to initialize magento. the safest way to initialize it is by using initializer before your actual call to the model
Mage::init();
$customer = Mage::getModel('customer/customer');
回答4:
I got the same error message. The solution was different. I forgot to give the permission on the magento folder to the Apache.
chown -R apache:apache magento
回答5:
I personally had solved it by using
$customer = new Mage_Customer_Model_Customer();
instead of using
$customer = Mage::getModel('customer/customer');
来源:https://stackoverflow.com/questions/7145373/magento-fatal-error-call-to-a-member-function-getmodelinstance-on-a-non-obje