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>