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を初期化する必要があります。初期化する最も安全な方法は、モデルを実際に呼び出す前に初期化子を使用することです。

Mage :: init();

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

于 2013-05-15T15:00:30.410 に答える
1

同じエラーメッセージが表示されました。解決策は異なっていました。magentoフォルダーの許可をApacheに与えるのを忘れました。

chown -R apache:apache magento
于 2014-06-03T11:40:46.620 に答える
0

個人的には使って解決しました

$customer = new Mage_Customer_Model_Customer();

使用する代わりに

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

于 2015-02-22T03:57:53.230 に答える