magento - 警告:require_once(app/Mage.php):无法打开流:没有这样的文件或目录

magento - Warning: require_once(app/Mage.php): failed to open stream: No such file or directory

使用 ajax,我使用以下代码发布到 php 文件。但是我在尝试要求 app/Mage.php:

时收到以下错误

警告:require_once(app/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();
?>

谁能帮忙,我需要这个文件做的就是 return 基于产品 ID 的库存价值?

谢谢

大多数情况下,像 "Warning: require_once(app/Mage.php): failed to open stream: No such file or directory" 这样的错误意味着 PHP 正在其包含路径中查找文件,但找不到任何内容。

app/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 中列出,适合您自己的个人环境。例如,如果您不让您的包含文件进入您的网络 space(这总是一个好主意,特别是如果您的包含文件中有密码之类的东西)并且如果您使用类似 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"

您 ajax post 可能无法获得正确的路径,请试试这个:

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