我想知道如何(如果有可能)在Yii模型中组合(联合)关系。yii联合模型关系
我有以下型号:
- 用户
- 国家
- 省
- 市
- 项目
地理层次结构关系是:
- 全国有许多省份
- 省有许多城市
- 市有许多项目
国家及省一级有很多项目:“通过” =>“城市”
用户 - 地理关系有点复杂:
- 用户 - 国家(多对多)
- 用户 - 省(多对多)
- 用户 - 市(多对多)
所以用户可以分配给任何地理区域层级,将有隐含分配给所有级别的子级别的。
例如。分配到加拿大,加利福尼亚州和芝加哥的用户,将有机会获得:在加拿大
- 所有项目在所有省份在加州
- 以及在芝加哥的所有项目
因此,我想看看哪些项目通过他们的地理水平分配给用户。因此,我想建立一个关系,通过访问“items”属性(例如$ myUser-> items),我可以访问分配给它们的所有项目。
有效,我想这些组合成称为单一的关系“项目”:这里是
'countryItems' => array(self::HAS_MANY, 'Item', array('id' => 'country_id'), 'through'=>'countries'),
'provinceItems' => array(self::HAS_MANY, 'Item', array('id' => 'province_id'), 'through'=>'provinces'),
'cityItems' => array(self::HAS_MANY, 'Item', array('id' => 'city_id'), 'through'=>'cities'),