複数列のテーブルでJTable delete()を使用してレコードを削除しようとしています。私は、単一の主キーを持っていないので、私は($のPKを).delete使用することはできませんが、私はJTableのインスタンスにレコードをロードする必要が複数列のキーを持つ行を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;
:表は、次のように定義リンクテーブルです。 JTable.delete($ pkを)
$のPKがあるのJoomlaの3.6ドキュメンタリーによると
$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();
: "削除するオプションの主キー値インスタンスのプロパティ値を設定していない場合は、使用されています。"
したがって、$ pkを省略すると、現在読み込まれているインスタンスを削除する必要があります。しかし、私は "Nullプライマリキーが許可されていません。"上記の私のコードからの例外。
複数の列のキーを持つレコードを削除するにはどうすればよいですか?
PS:私はSQL文を直接使うことができますが、私のテーブルクラスはトレース/ロギングを行うように設定されているので、それらを使うことに固執したいと思います。