我在下面添加了我的應用程序的一些代碼。它僅顯示屬於此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