Yii 1.1 - 多对多关系 - 从关系表返回数据
Posted
技术标签:
【中文标题】Yii 1.1 - 多对多关系 - 从关系表返回数据【英文标题】:Yii 1.1 - Many to Many Relationship - Returning data from relation table 【发布时间】:2015-06-09 08:58:07 【问题描述】:我的数据库中有 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】:最后,我得到了问题中详细说明的方法。我为关系创建了一个模型,并返回了包/产品以及关系中的数据
//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))
【讨论】:
以上是关于Yii 1.1 - 多对多关系 - 从关系表返回数据的主要内容,如果未能解决你的问题,请参考以下文章