2011-08-22 17 views
7

ajax kullanarak bir PHP dosyası aramak istiyorum, bu PHP'de ajax tarafından sipariş vereceğim aramak. Ben o dosyadan/Mage.php uygulamasını kullanıyorum iken Ama hata atıyorMagento: Ölümcül hata: Bir üye fonksiyonuna çağrım getModelInstance() app Mage.php'de nesne olmayan bir nesne üzerinde 432

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

o zaman

Fatal error: Call to a member function getModelInstance() on a non-object in app\Mage.php on line 432

kimse bana yardım edebilir diyor ???

+0

bunu çözmüş kullanarak bunu çözmüş 210 $ müşteri = yeni Mage_Customer_Model_Customer(); $ customer = Mage :: getModel ('customer/customer') yerine; – itsazzad

cevap

37

Önerilen çözümünüz uygun değildir. Magento’yu başlatmadınız, bu yüzden modül XML henüz yüklenmedi ve fabrika modeli çalışmıyor.

Basitçe kullanmak ya:

Mage::init(); // 1.5+ 

veya

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

getModel kullanmadan önce.

+0

bana bu hatayı gösterir "Mage kayıt defteri anahtarı" denetleyicisi "zaten var" Maer :: init() için –

+1

+1; teşekkürler .... –

+0

Teşekkürler Daniel Sloof. Bu hata ile çok uğraştım. +11111111 – ParekhAbhishekN

3

Önce Magento Framework başlatmak olmalıdır:

/* 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()); 
+0

Mage :: init ($ mageRunCode, $ mageRunType) gibi görünüyor, daha uygun olurdu, ama +1! (Ancak, Mage EE 1.12 kullanıyorum. Farklı sürümler için farklı olabilir :) Teşekkürler, hatamı çözdüm. –

+0

@Shredder: init() - hata - düzenlendim. – Alex

+0

+1 bunun için ... teşekkürler .... bana çok yardımcı –

1

sen magento başlatmak gerekiyor. Bunu başlatmanın en güvenli yolu, gerçek çağrıcınız olan modele yapılan ilk çağrıyı kullanmadan önce

Mage :: init();

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

1

Aynı hata mesajını aldım. Çözelti farklıydı. Apento'ya magento klasöründe izin vermeyi unuttum.

chown -R apache:apache magento 
0

Ben şahsen kullanarak

$customer = new Mage_Customer_Model_Customer(); 

kullanarak yerine

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