2016-12-16 89 views
1

我試着在多列表上使用JTable delete()刪除一條記錄。表是一個鏈接表定義爲:JTable使用多列鍵刪除行

CREATE TABLE IF NOT EXISTS `#__bb_league_members` (
     `user_id` int(10) unsigned NOT NULL , 
     `league_id` int(10) unsigned NOT NULL , 
     `status` TINYINT NULL DEFAULT 0, 
    .... 
    PRIMARY KEY (`league_id`,`user_id`) 
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 

,因爲我沒有一個主鍵,我無法使用.delete($ PK),但我一定要記錄加載到一個JTable實例。

 $data = []; 
     $data['user_id'] = $uid; 
     $data['league_id'] = $lid; 

     $tbl = $this->getTable('LeagueMember'); 
     $tbl->load($data); //a var dump here shows the record is loaded!! 
     return $tbl->delete(); 

根據對JTable.delete($ PK)

$ PK是的Joomla 3.6實況: 「來刪除一個可選的主鍵值,如果沒有設置該實例的屬性值被使用。」

因此,如果我省略$ pk,應刪除當前加載的實例。但是,我收到了「空主鍵不允許」。來自我上面的代碼的例外。

如何使用多列鍵刪除記錄? PS:我知道我可以直接使用SQL語句,但我的表類設置爲跟蹤/日誌記錄,我想堅持使用它們。

回答

0

經過多一點挖掘後,我在這裏發現了一個2009 forum post,其中指出JTable不支持多列或複合鍵。 :( 因此,現在我必須用我自己的multi_column_key_delete()和... update()函數來擴展JTable