Magento: фатальная ошибка: вызов функции-члена getModelInstance () для необъекта в app \ Mage.php в строке 432 - PullRequest
7 голосов
/ 22 августа 2011

Я хочу вызвать файл PHP, используя ajax, где в этом PHP я буду размещать заказ с помощью вызова ajax.Но он выдает ошибку, когда я использую app / Mage.php из этого файла

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

, затем он говорит

Неустранимая ошибка: вызов функции-члена getModelInstance () дляне объект в app \ Mage.php в строке 432

Может кто-нибудь, пожалуйста, помогите мне ???

Ответы [ 5 ]

38 голосов
/ 22 августа 2011

Ваше предлагаемое решение не является оптимальным.Вы не инициализировали Magento, поэтому модуль XML еще не загружен и фабричный шаблон не работает.

Просто используйте:

Mage::init(); // 1.5+ 

или

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

доиспользуя getModel.

3 голосов
/ 22 августа 2011

Сначала вы должны инициализировать Magento Framework:

/* 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());
1 голос
/ 03 июня 2014

Я получил то же сообщение об ошибке.Решение было другим.Я забыл дать разрешение на папку magento для Apache.

chown -R apache:apache magento
1 голос
/ 15 мая 2013

вам нужно инициализировать magento. самый безопасный способ его инициализации - использование инициализатора до фактического вызова модели

Mage :: Init ();

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

0 голосов
/ 22 февраля 2015

Я лично решил это с помощью

$customer = new Mage_Customer_Model_Customer();

вместо использования

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

...