致命错误:不能在第 548 行的 dministrator/components/com_menus/models/item.php 中使用 stdClass 类型的对象作为数组
行 #546-#550:
// Get selected fields
$filters = JFactory::getApplication()->getUserState('com_menus.items.filter');
$data['published'] = (isset($filters['published']) ? $filters['published'] : null);
$data['language'] = (isset($filters['language']) ? $filters['language'] : null);
$data['access'] = (isset($filters['access']) ? $filters['access'] : null);
在菜单管理器中创建新菜单项时出错。
菜单管理器工作正常,直到从Joomla 3.4.1升级到3.5.1。
确保扩展运行的是最新版本。
您还可以搜索用途
JFilterInput::clean(SOMETEXT);
并将其替换为:
$filter = new JFilterInput;
$filter->clean(SOMETEXT);
检查这个 : https://docs.joomla.org/J3.x:Fatal_Error_in_Input_Filtering/en
因为$filters
是一个具有属性的对象,而不是一个带有元素的数组;所以你需要使用对象语法来访问这些属性:
$data['published'] = (isset($filters->published) ? $filters->published : null);
$data['language'] = (isset($filters->language) ? $filters->language : null);
$data['access'] = (isset($filters->access) ? $filters->access : null);
非常感谢马克和里希的指点。
我通过下载完整的 Joomla 3.5.1 软件包并替换整个管理员/组件/com_menus 目录解决了这个问题,它现在可以工作了!
我怀疑在3.4.1->3.5.1更新过程中缺少一些文件(使用Joomla更新管理器)。我建议进行手动升级以避免意外或不需要的情况。