所以我想用 yii 做的有点复杂。
数据库
我有一个城市、一个 city_has_product 和一个产品表。所以城市是 MANY_TO_MANY,产品通过 city_has_product。city_has_product 有一个名为 amount 的列。
为了了解 FK 和 PK 名称,这里有 FK 和 PK 表:
城市
ID
city_has_product
city_id
product_id
产品
ID
我想要什么作为我想要的模型
,我可以这样做: $city->products[0]->amount
所以金额值来自 city_has_product 到 Product(在模型层中)
到目前为止,我是
City 有这种关系:
return array(
'city_has_product'=> array(self::HAS_MANY, 'CityHasProduct', 'city_id'),
'products'=> array(self::HAS_MANY, 'Product', array('product_id'=>'id'), 'through' => 'city_has_product'),
);
CityHasProducts 没有关系 Product 有这个关系:
return array(
'city_has_product'=> array(self::HAS_MANY, 'CityHasProduct', 'product_id'),
'city'=> array(self::HAS_ONE, 'City', array('city_id'=>'id'), 'through' => 'city_has_product'),
'hasAmount' => array(self::STAT, 'CityHasProduct', 'product_id', 'select'=>'amount'),
);
我的解决方案有问题
hasAmount 忽略了城市。我用 'condition'='city_id=city.id' 试过,但没有奏效。我不知道如何从 Product 访问 city.id,因为我与城市没有直接关系,因为在 db 级别产品和城市是 MANY_TO_MANY。
问题
1. 这可能与 yii 有关系吗?
2. 如何从 Product 中获取 city.id?
3. 我在正确的轨道上吗?如果不是如何获得我想要的这个模型?
感谢您的所有回答:)