我在下面添加了我的应用程序的一些代码。它仅显示属于此product_category的product_category名称和产品数量。它像一个魅力。但我想重新获得仅属于某个城市的分类名称及其产品。例如,我想获得属于“木制”类别并位于巴库的产品数量。我认为我必须对模型的getActiveProducts()函数进行一些更改。任何帮助表示赞赏。 这些都是我的表:Yii2 hasmany条件和多表
产品
id | name | offer_category_id
-----------------------------
1 | Khar | 3
2 | SantaCruz | 2
3 | Furniture | 2
4 | VT | 1
5 | newFort | 4
PRODUCT_CATEGORY
id | name
--------------
1 | Khar
2 | Wooden
3 | Sion
4 | VT
5 | newFort
product_adress
id | city | offer_id
-----------------------------
1 | Baku | 1
2 | Ismailly | 2
3 | Absheron | 5
4 | Paris | 4
5 | Istanbul | 3
我的控制器:
$data['productCategory'] = ProductCategory::find()
->joinWith('products')
->all();
查看代码:
<?php foreach($data['productCategory'] as $key=>$value):
<li>
<span class="m-offer-count"><?= $value->productsCount; ?></span>
</li>
<?php endforeach; ?>
最后我产品分类型号:
public function getActiveProducts() {
$all_products = $this->hasMany(Product::className(),['product_category_id' => 'id'])->select(['id'])->where(['status'=>1])->all();
return $all_product;
}
public function getProductsCount() {
return sizeof($this->activeProducts);
}
我用另一种方式解决了这个任务,如果你想我心底分享 –
@ShaigKhaligli你可以用你的解决方案更新这个答案。或者更新你的问题。你如何解决这个问题很有意思,并且对别人有帮助 – oakymax