我在用中间表表示的两个表之间有多对多的关系。我正在使用 ZF1 表关系方法对我的应用程序中的数据库进行建模,并且效果很好。我正在努力解决的一件事是在执行多对多查找时从中间表中提取数据。例如:
产品表
产品 ID、产品名称
客户表
客户 ID,客户名称
销售表
customer_id、product_id、date_of_sale
在这种情况下,销售表是中间表,多对多关系是客户和产品之间的关系。我将 referenceMap 添加到产品和客户的销售表模型中,并将依赖表“销售”添加到产品表模型和客户表模型中。
然后,我可以成功地使用以下代码获取给定客户的所有产品(反之亦然)。
$productTable = new productsTable();
$product = $productTable->find(1)->current();
$customers = $product->findManyToManyRowset('customerTable','salesTable');
但它不包括返回的行集中的“date_of_sale”值。有没有一种方法可以在不进行单独的数据库查找的情况下包含中间表中的值。我在 zf 文档中看不到任何内容。
任何帮助都会很酷。我希望最终用数据映射器实现替换 zend_table,因为它执行的数据库查询的数量似乎非常低效有了这个。
谢谢。