在使用Dedecms自定义模型时,有时会遇到一些技术问题。例如,在更新列表页时可能会出现错误提示:“Fatal error: Call to a member function GetInnerText() on a non-object”。以下是对该问题的详细分析和解决方案。
### 一、问题描述 当您在Dedecms中使用自定义模型,并尝试更新列表页时,可能会遇到如下错误提示:

Fatal error: Call to a member function GetInnerText() on a non-object in E:wwwincludetaglibchannelimg.lib.php on line 51
    
此错误表明系统在执行`GetInnerText()`方法时遇到了问题,可能是因为调用的对象为空(non-object)。
### 二、问题原因 此错误通常发生在更新自定义模型栏目列表时。具体来说,问题出现在`includetaglibchannelimg.lib.php`文件中的第51行左右。系统尝试通过`$arcTag->GetInnerText()`获取内部文本内容,但如果`$arcTag`对象为空,则会导致上述错误。
### 三、解决方法 修复此问题的方法非常简单,只需对`includetaglibchannelimg.lib.php`文件进行修改即可。以下是具体步骤: 1. **打开文件**:找到并编辑`includetaglibchannelimg.lib.php`文件。 2. **定位代码**:查找类似以下的代码:

$innerTmp = $arcTag->GetInnerText();
    
3. **替换代码**:将上述代码替换为以下任一版本: #### 方法一:简化版

$innerTmp = ($arcTag == "") ? trim($arcTag) : trim($arcTag->GetInnerText());
    
#### 方法二:增强版

if ($arcTag == "") {
    $innerTmp = trim($arcTag);
} else {
    $innerTmp = trim($arcTag->GetInnerText());
}
    
4. **保存文件**:完成修改后保存文件。 5. **测试更新**:返回后台重新更新列表页,确认问题是否已解决。
### 四、总结 通过以上修改,您可以有效避免因`$arcTag`对象为空而导致的错误。此问题的根本原因是系统在处理某些标签时未充分验证对象的有效性。通过增加条件判断,可以确保程序在任何情况下都能正常运行。 希望本文能帮助您顺利解决Dedecms自定义模型中的相关问题。如果您还有其他疑问或需要进一步的帮助,请随时查阅官方文档或联系技术支持团队。
注意:在修改核心文件前,请务必备份原始文件,以防止意外情况发生。