我的程序正在使用带有 CodeIgniter 的 WanWizard DataMapper ORM,并且需要基于连接表中的字段执行简单的查询。这是我的代码:
$d = new Deal();
$deals = $d
->where_join_field('networks', 'status', 'active')
->get();
如您所见,相当简单。“交易”和“网络”之间的多对多关系,在连接表中有一个“状态”字段。但是,这是它生成的查询:
SELECT * FROM (`deal`) WHERE `deal_network`.`status` = 'active'
显然,这根本行不通,因为没有JOIN
地方可以引入deal_network
表。我尝试使用include_related
,但它将deal_network
表别名为networks_deal_network
,导致表引用不正确。如何JOIN
正确地将 DataMapper 到该表的查询中?