的Joomla 3重複條目鍵「idx_client_id_parent_id_alias_language」當手動插入的Joomla數據庫
我試圖手動插入一些記錄到#__menu
。由於對於大多數字段,我可以使用其他記錄所具有的值,我試圖從現有記錄獲取stdObject並將其插回到表中。在此之前,我需要照顧可能的重複副本。我讀了表格結構,除了id
,我發現lft
和rgt
字段似乎必須是唯一的。所以下面是我嘗試:
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$sql = 'SELECT * FROM `#__menu` WHERE id = 203';
$db->setQuery($sql);
$example = $db->loadObjectList()[0];
unset($example->id);
unset($example->lft);
unset($example->rgt);
$db->insertObject('#__menu',$example);
該錯誤消息我得到的是
重複項 '0-1-001- *' 爲主要 'idx_client_id_parent_id_alias_language'
SQL = INSERT INTO
#__menu
(menutype
,title
,alias
,note
,path
,link
,type
,published
,parent_id
,level
,component_id
,checked_out
,checked_out_time
,browserNav
,access
,img
,template_style_id
,params
,home
,language
,client_id
) VALUES( '隱藏', '測試', '001', '', '001', 'index.php?option = com_k2 & view = item & layout = item & id = 1','component','1','1','1','10125','0','0000-00 -00 00:00:00','0','1',' ','0','{\「menu-anchor_title \」:\「\」,\「menu-anchor_css \」: 「\」 \ 「menu_image \」:\ 「\」 \ 「MENU_TEXT \」:1,\ 「MENU_SHOW \」:1,\ 「PAGE_TITLE \」:\ 「\」 \ 「show_page_heading \」:\」 \ 「\ 」page_heading \「:\ 」\「,\ 」pageclass_sfx \「:\ 」\「,\」 菜單meta_description \ 「:\」 \」,\ 「菜單meta_keywords \」:\ 「\」,\ 「機器人\」:\ 「\」,\ 「安全\」:0}」, '0', '*', 「0」)
我不明白爲什麼有一個名爲「idx_client_id_parent_id_alias_language」鍵,可以肯定的是不是表的領域之一。谷歌搜索它返回一些結果,但在我看來,他們沒有一個與我的問題有關。
你可以給我們'SHOW CREATE TABLE __menu'的輸出嗎? –
http://p.nycweb.io/1.png @NeilMasters – shenkwen
確定嘗試「菜單」表,它比我的更重要,因爲它突出顯示了鍵:)您正手動插入一行並接收到一個關鍵錯誤。密鑰是別名,client_id,parent_id和語言之間的組合,因此不能有具有相同組合的兩行。 –