Ich versuche einen Datensatz mit JTable delete() in einer mehrspaltigen Tabelle zu löschen. Tabelle ist eine verknüpfte Tabelle wie folgt definiert:JTable Zeile mit mehrspaltigem Schlüssel löschen
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;
da ich keinen einzigen Primärschlüssel haben, kann ich nicht verwenden .delete ($ pk), aber ich habe den Datensatz in eine JTable Instanz zu laden.
$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();
nach dem 3.6 Doku Joomla auf JTable.delete ($ pk)
$ pk ist: "Ein optionaler Primärschlüsselwert zu löschen, wenn nicht die Instanz Eigenschaft Wert verwendet wird."
Also wenn ich die $ pk weglassen die aktuelle geladene Instanz sollte gelöscht werden. Allerdings bekomme ich einen "Null Primärschlüssel nicht erlaubt." Ausnahme von meinem Code oben.
Wie lösche ich einen Datensatz mit einem mehrspaltigen Schlüssel?
PS: Ich weiß, ich kann eine SQL-Anweisung direkt verwenden, aber meine Tabellenklassen sind eingerichtet, um Tracing/Logging zu tun, und ich möchte bei der Verwendung bleiben.