Magento 1.7-web应用程序外部脚本中的getModel失败

Magento 1.7-web应用程序外部脚本中的getModel失败,magento,magento-1.7,Magento,Magento 1.7,在独立脚本中运行时: $x = Mage::getModel('starmall_shipment/shipment'); $x->load(3); var_dump($x); // WORKS and I get information 为什么它在模型前面加上Mage? 我的配置中可能有什么问题 新增信息: /app/etc/Starmall_shipping.xml No such file or directory in /home/users/xx

在独立脚本中运行时:

    $x = Mage::getModel('starmall_shipment/shipment');
    $x->load(3);

    var_dump($x);  // WORKS and I get information
为什么它在模型前面加上
Mage
? 我的配置中可能有什么问题


新增信息:

/app/etc/Starmall_shipping.xml

No such file or directory  in /home/users/xxx/xxx/lib/Varien/Autoload.php
Failed opening 'Mage/Starmall/Shipment/Model/Shipment.php'
如果我将此标记注释掉,则不需要在脚本中使用
loadModules()


我想知道在进入生产模式时是否需要重新启用此功能?

它是为Mage设置的,因为它是核心目录之一。。在我的服务器中,我将/var/www/app/code/core/Mage/视为可导航路径

将独立脚本放入mage base dir,并在“开始”处使用以下代码


它是预编Mage,因为它是核心目录之一。。在我的服务器中,我将/var/www/app/code/core/Mage/视为可导航路径

将独立脚本放入mage base dir,并在“开始”处使用以下代码


看看Magento cron是如何工作的-它也可以作为独立脚本(cron.php)工作,并将粘贴代码复制到自定义模块中。
主要事项:

<?php
   require_once 'app/Mage.php';
   Mage::app('admin'); 
而且似乎模块没有加载 尝试在初始化配置之后添加:

 require 'app/Mage.php';
 ...
 Mage::getConfig()->init()

看看Magento cron是如何工作的——它也可以作为独立脚本(cron.php)工作,并将粘贴代码复制到自定义模块中。 主要事项:

<?php
   require_once 'app/Mage.php';
   Mage::app('admin'); 
而且似乎模块没有加载 尝试在初始化配置之后添加:

 require 'app/Mage.php';
 ...
 Mage::getConfig()->init()

检查存储中是否启用了编译模式(系统->工具->编译)。如果是,则重新运行编译过程

检查存储中是否启用了编译模式(系统->工具->编译)。如果是,则重新运行编译过程

您应该在
config.xml
中的
标记下定义您的模型

Mage::getConfig()->loadModules();

Starmall_装运_型号
starmall_装运_mysql4
Starmall_发货_型号_Mysql4
starmall_装运

因为您是从模块外部访问if。

您应该在
config.xml
中的
标记下定义您的模型

Mage::getConfig()->loadModules();

Starmall_装运_型号
starmall_装运_mysql4
Starmall_发货_型号_Mysql4
starmall_装运
因为您正在从模块外部访问if

为什么它会在模型前面加上法师?我的配置中可能有什么问题

要查看发生这种情况的地方,请查看
Mage\u Core\u Model\u Config::getGroupedClassName()

这可能意味着两件事之一:

  • 未找到
    $config
    节点(
    global/models/starmall\u-shipping
  • 节点没有
    模型
    子节点,或者节点为空
  • 在您的例子中,它看起来像(1),所以问题仍然存在,为什么您的配置没有加载。您确保配置本身是正确的,所以问题一定是模块没有加载

    您可以从
    app/etc/modules
    发布模块声明文件吗

    为什么它会在模型前面加上法师?我的配置中可能有什么问题

    要查看发生这种情况的地方,请查看
    Mage\u Core\u Model\u Config::getGroupedClassName()

    这可能意味着两件事之一:

  • 未找到
    $config
    节点(
    global/models/starmall\u-shipping
  • 节点没有
    模型
    子节点,或者节点为空
  • 在您的例子中,它看起来像(1),所以问题仍然存在,为什么您的配置没有加载。您确保配置本身是正确的,所以问题一定是模块没有加载


    你能从
    app/etc/modules
    发布你的模块声明文件吗?

    问题确实在
    app/etc/local.xml
    中,但不应该通过调用
    Mage::app()->loadModules()
    来解决

    真正的问题是有人(很可能出于调试目的)禁用了本地模块

    换衣服

        if (empty($className)) {
            if (!empty($config)) {
                $className = $config->getClassName();
            }
            if (empty($className)) {
                $className = 'mage_'.$group.'_'.$groupType;
            }
            if (!empty($class)) {
                $className .= '_'.$class;
            }
            $className = uc_words($className);
        }
    
    true
    

    false
    

    app/etc/local.xml
    中,问题确实在
    app/etc/local.xml
    中,但不应该通过调用
    Mage::app()->loadModules()来解决

    真正的问题是有人(很可能出于调试目的)禁用了本地模块

    换衣服

        if (empty($className)) {
            if (!empty($config)) {
                $className = $config->getClassName();
            }
            if (empty($className)) {
                $className = 'mage_'.$group.'_'.$groupType;
            }
            if (!empty($class)) {
                $className .= '_'.$class;
            }
            $className = uc_words($className);
        }
    
    true
    

    false
    

    app/etc/local.xml

    中,在添加 Mage::app('admin')
    这个
    Mage::getConfig()->init()像一个魔咒一样工作。

    CarComp在添加 Mage::app('admin')
    这个
    Mage::getConfig()->init()像一个符咒一样工作。

    尝试过,但结果相同。奇怪的是,我有其他自定义表,它们在我的测试脚本中正常工作。这是我唯一有这个问题的。比较了config.xml文件,但找不到与模块命名有任何区别。尝试了,但结果相同。奇怪的是,我有其他自定义表,它们在我的测试脚本中正常工作。这是我唯一有这个问题的。比较了config.xml文件,但找不到与模块命名不同的地方。您是否在其目录外使用Magento测试了库存组件(不是您自己的模块)?这将是第一件要测试的事情,以确保你做得正确。是的,我用Magento core模型进行了测试,这些模型工作正常。此外,我还有其他具有相同配置的自定义模块/表,它们也可以正常工作。除此之外,此型号会出现此错误。您是否在Magento目录外使用库存组件(而不是您自己的模块)进行过测试?这将是第一件要测试的事情,以确保你做得正确。是的,我已经用Magento core模型进行了测试
        if (empty($className)) {
            if (!empty($config)) {
                $className = $config->getClassName();
            }
            if (empty($className)) {
                $className = 'mage_'.$group.'_'.$groupType;
            }
            if (!empty($class)) {
                $className .= '_'.$class;
            }
            $className = uc_words($className);
        }
    
    <disable_local_modules>true</disable_local_modules>
    
    <disable_local_modules>false</disable_local_modules>