2016-04-21 94 views
1

致命错误:无法/ item.php上线使用类型stdClass的的对象作为dministrator /组件/ com_menus /模型阵列548致命错误:升级到Joomla后不能使用类型stdClass的的对象作为阵列3.5.1

线#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。

+0

这不是Joomla核心的错误,所以请确保你已经更新了所有的扩展名,因为它会是导致错误的那个。无论是或者还原任何你可能已经完成的核心黑客攻击 – Lodder

回答

2

由于$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); 
0

非常感谢指针Mark和Rishi。

我通过下载完整的Joomla 3.5.1软件包并替换整个管理员/ components/com_menus目录解决了这个问题,它现在可以工作了!

我怀疑在3.4.1-> 3.5.1更新过程(使用Joomla更新管理器)期间丢失了一些文件。我会建议做手动升级以避免意外或不需要的情况。

相关问题