Joomla 3.10.3创建模块出现未定义属性错误,如何修复?
问题分析与解决办法
问题原因
你猜的没错,Joomla 3.10.3和PHP 8.1.10确实存在兼容性问题。Joomla 3.10系列的官方支持PHP版本上限是7.4,PHP 8.0及以上版本对未定义属性的访问会抛出更严格的警告,而旧版Joomla的代码里存在这类未处理的属性调用,就会出现你看到的报错:
Undefined property: Joomla\CMS\Object\CMSObject::$checked_out in C:\xampp\htdocs\Joomla3\administrator\components\com_modules\views\module\view.html.php on line 62 Warning: Undefined property: Joomla\CMS\Object\CMSObject::$position in C:\xampp\htdocs\Joomla3\administrator\components\com_modules\views\module\tmpl\edit_positions.php on line 17 Warning: Undefined property: Joomla\CMS\Object\CMSObject::$position in C:\xampp\htdocs\Joomla3\administrator\components\com_modules\views\module\tmpl\edit_positions.php on line 27
解决步骤
1. 降级PHP版本(推荐)
这是最稳妥的解决方式:
- 打开XAMPP控制面板,停止当前的Apache服务
- 切换到PHP 7.4版本(可下载对应版本的XAMPP,或单独替换PHP文件夹后修改Apache配置)
- 重启Apache,再尝试创建模块
2. 临时缓解(仅应急用)
如果暂时无法降级PHP,可以修改Joomla的错误报告级别,隐藏这类警告:
- 登录Joomla后台,进入「系统」→「全局配置」
- 切换到「服务器」标签页,找到「错误报告」选项,设置为「无」或者「简单」
- 保存设置后,警告会被隐藏,但这只是治标不治本,长期来看还是建议降级PHP版本
内容的提问来源于stack exchange,提问作者CESSIR
相关产品推荐
相关产品推荐

