2016-04-21 93 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更新管理器)期間丟失了一些文件。我會建議做手動升級以避免意外或不需要的情況。

相關問題