Yii 1.1 - 多对多关系 - 从关系表

时间:2015-06-09 08:58:08

标签: php model-view-controller yii orm

我的数据库中有3个表

tbl_products
product_id
default_price

tbl_packages
package_id
name

tbl_relations
relation_id
package_id
product_id
price

我已在我的包/产品模型中成功建立了多对多关系

//Product->relations()
'packages' => array(self::MANY_MANY, 'Package', 'tbl_relations(package_id, product_id)')

//Package->relations()
'products' => array(self::MANY_MANY, 'Product', 'tbl_relations(product_id, package_id)')

我想要实现的是能够返回tbl_relations.price而不是tbl_products.default_price,因为每条记录都可以有自定义价格。任何人都可以指出我如何做到这一点的正确方向?

我想也许我必须为关系创建一个模型并建立与HAS_MANY和BELONGS_TO的关系,但我不确定是否有更好的方法。感谢。

1 个答案:

答案 0 :(得分:0)

最后,我得到了问题详细说明的方法。我为关系创建了一个模型,并返回了包/产品以及关系中的数据

 //Package->relations()
'products' => array(self::HAS_MANY, 'PackageProductRelation', product_id))

//Product->relations()
'packages' => array(self::HAS_MANY, 'PackageProductRelation', package_id))

//PackageProductRelation->relations()
'products' => array(self::BELONGS_TO, 'Product', product_id))
'products' => array(self::BELONGS_TO, 'Package', package_id))