【问题标题】:Fatal error: Call to a member function getModelInstance() on a non-object in /Applications/XAMPP/xamppfiles/htdocs/magento/app/Mage.php on line 463致命错误:在第 463 行的 /Applications/XAMPP/xamppfiles/htdocs/magento/app/Mage.php 中的非对象上调用成员函数 getModelInstance()
【发布时间】:2014-09-30 06:09:12
【问题描述】:

当我运行 localhost/magento 时,我安装了 magento 1.9.0.0 并复制到我的 xampp htdocts 这个错误显示,我已经完成了解决方案,但它没有工作。

Fatal error: Call to a member function getModelInstance() on a non-object in    
 /Applications/XAMPP/xamppfiles/htdocs/magento/app/Mage.php on line 463

这里是代码脚本:

public static function getModel($modelClass = '', $arguments = array())
  {
    return self::getConfig()->getModelInstance($modelClass, $arguments);
  }

【问题讨论】:

    标签: php magento fatal-error


    【解决方案1】:

    如果您正在运行自定义脚本,您可能忘记设置当前存储。

    示例:

    Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
    Mage::app()->setCurrentStore('my_store_id');
    

    如果您不设置商店,则调用Mage::getModel 将导致上述错误。

    【讨论】:

    • 这对我有帮助,谢谢。
    【解决方案2】:

    如果您在脚本中尝试在外部访问 Magento 时遇到此错误

    here 给出的解决方案应该在使用权限之前首先考虑。

    Mage::init(); // 1.5+

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

    【讨论】:

    • 感谢 imran bhai :)
    【解决方案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());
    

    【讨论】:

      【解决方案4】:

      真正导致您的问题是您的 Magento 安装目录和文件没有正确的权限。 XAMPP 默认以 daemon 的用户身份运行 Apache。如果你不想这样,你可以在httpd.conf 中更改它。这样就解决了问题,无需做任何其他事情。

      但您也可以更改文件的所有者。您永远不应该通过告诉chmod 777 来授予所有人访问您文件的权限。如果您将这些文件移动到生产环境中,777 处理您的文件是一个主要的安全问题。

      改为使用chmod 777,使用chown 更改目录的所有者。转到您的 Magento 目录(在您的情况下为 cd /Applications/XAMPP/xamppfiles/htdocs/magento/)并使用此命令递归地将所有文件和目录的所有者更改为 daemon

      sudo chmod -R daemon .

      【讨论】:

        【解决方案5】:

        问题与某些写入权限有关。 设置对以下文件夹app/etc, var and media的写入权限。

        cd /xampp-folde/htdocs/magento
        chmod -R 777 app/etc
        chmod -R 777 var
        chmod -R 777 media
        

        【讨论】:

        • 我认为magento团队假设在目录不可写而不是引用错误时抛出一个合理的异常。
        • 非常感谢您的帮助:)
        • magento 团队可以更好地处理许多异常
        猜你喜欢
        • 2011-11-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-26
        相关资源
        最近更新 更多