我通过this教程,我的问题在于我没有得到任何关于“全局配置和创建模型”部分的函数错误(当分配给变量{{1}时) },而模型尚不存在)。
在某些时候,我在/index.php中找到了一个if语句,其中调用了以下方法:
Mage::getModel('weblog/blogpost')
为了测试它,我把它放在if语句之外(我知道这不是一个好习惯)。
结果是我收到了这条警告信息:
Mage::setIsDeveloperMode(true);
但仍然没有我期望的错误。
那么,我怎样才能摆脱这条警告信息,但更重要的是,如何在开发模式中看到错误?
谢谢!
编辑:当我继续学习本教程时,我发现我没有从核心课程中得到任何反馈。例如:在尝试从资源定义不完整的模型中获取数据时,我应该得到“无法检索实体配置:weblog / blogpost”。好吧,我没有。 :|
答案 0 :(得分:8)
开发人员模式是PHP和Magento的一种use strict
。它迫使你修复一切。如果看起来simplexml_load_string
函数不喜欢系统中的某个XML配置文件。您可以通过
/home/dowebro/public_html/magento/lib/Varien/Simplexml/Config.php
和var转储传递给loadFile
的变量。
基于错误消息
XML declaration allowed only at the start of the document
我的猜测是你的config.xml
XML prolog在它之前有一些空格
[ ]<?xml version=...
或者您不小心在XML文件中的某处添加了<?
。
答案 1 :(得分:0)
我不知道为什么我的帖子被删除了。 Mods我甚至都不能给你留言。
我按照与@Michael相同的教程进行操作并遇到了同样的问题。
解决方案将转到应用程序index.php的根目录,并从下面的语句前面删除哈希
#ini_set('display_errors', 1)
到
ini_set('display_errors', 1)
答案 2 :(得分:0)
我有这个问题,我可以解决调试文件app \ code \ core \ Mage \ Core \ Model \ Config.php
在此类中搜索metod loadModulesConfiguration,并确保您拥有以下代码:
foreach ($fileName as $configFile) {
$configFile = $this->getModuleDir('etc', $modName).DS.$configFile;
if ($mergeModel->loadFile($configFile)) {
$mergeToObject->extend($mergeModel, true);
}
}
这就像这样添加一个块试试:
foreach ($fileName as $configFile) {
try {
$configFile = $this->getModuleDir('etc', $modName).DS.$configFile;
if ($mergeModel->loadFile($configFile)) {
$mergeToObject->extend($mergeModel, true);
}
} catch(Exception $e) {
Mage::log($configFile);
}
}
然后检查日志,您将获得问题文件的名称