2016-11-24 2 views
0

Используя ajax, я отправляю в php-файл со следующим кодом. Однако я получаю следующее сообщение об ошибке при попытке потребовать приложения/Mage.php:magento - Warning: require_once (app/Mage.php): не удалось открыть поток: нет такого файла или каталога

Предупреждение: require_once (приложение/Mage.php): не удалось не удалось открыть поток: Нет такого файла или каталога

<?php 
require_once ('app/Mage.php'); 
Mage::app(); 

function getProductStockLevel() { 
    $productId = 104; 
    $product = Mage::getModel('catalog/product')->load($productId); 
    $qty = $product->getStockItem()->getQty(); 
    echo $stockLevel; 
} 
getProductStockLevel(); 
?> 

Может ли кто-нибудь помочь? Все, что мне нужно для этого файла, это вернуть стоимость акции на основе идентификатора продукта?

Благодаря

+0

откуда вы запустите этот сценарий? –

ответ

1

вы Аякс сообщение не может получить правильный путь, попробуйте вместо этого:

require_once(__DIR__ . '/app/Mage.php'); 
1

Большую часть времени, ошибки типа «Внимание: require_once (приложение/Mage.php): не удалось открыть поток: Нет такого файла или каталога» означает, что PHP ищет файл в его включает путь, но ничего не может найти.

Где находится приложение/Mage.php? (Пожалуйста, отметьте путь).

Теперь откройте php.ini. В дистрибутивах Linux php.ini обычно находится в /etc/php.ini, но если вы используете что-то вроде MAMP или XAMPP, оно будет находиться в папках MAMP/XAMPP. Я не знаю, где php.ini будет храниться по умолчанию в ящиках Windows.

После открыть php.ini, найти этот раздел (примечание: это от моего MAMP установки, так что ваши значения могут отличаться):

; UNIX: "/path1:/path2" 
include_path =".:/Applications/MAMP/bin/php/php5.4.45/lib/php" 
; 
; Windows: "\path1;\path2" 
;include_path = ".;c:\php\includes" 

Убедитесь, что полный путь, где Mage.php является находится в include_path для вашей личной среды. Например, если вы сохраняете свои возможности вне своего веб-пространства (это всегда хорошая идея, особенно если у вас есть такие вещи, как пароли в вашем включении), и если вы используете операционную систему Unix, вы можете захотеть, чтобы ваш include_path выглядел это:

; UNIX: "/path1:/path2" 
include_path =".:/Applications/MAMP/bin/php/php5.4.45/lib/php:/app/appName/" 
; 
; Windows: "\path1;\path2" 
;include_path = ".;c:\php\includes" 
Смежные вопросы