在控制器中查詢好數據 $model
在視圖中輸入
<?php foreach($model as $key=>$r):?> <tr class="text-center"> <td><?=$r->id?></td> <td><?=$r->name?></td> <td><?php echo Province::find()->where(['country_id'=>$r->id])->count(); ?></td> <td> <?php //通過國家ID-->找到省ID--->城市,統計城市$province_record = Province::find()->where(["country_id" => $r->id])->all(); if(!empty($province_record)) { $city_num =0; foreach ($province_record as $record => $p) { //單個省對應的城市數量 $city_count = City::find()->where(["province_id" => $p->id])->count(); //全部加起來才是國家對應的城市數量 $city_num += $city_count; } echo $city_num; }else{ echo '-'; } ?> </td> <td> <a href="<?= Url::toRoute(['update', 'id' => $r->id]) ?>" >編輯國家</a> <span class="cpmain" data-handle="confirm" data-url="<?= Url::toRoute(['deletee', 'id' => $r->id]) ?>">刪除</span> </td> </tr> <?php endforeach; ?>
城市數量統計解釋 [省表中有國家的id,城市表中有省的id,但是國家和城市表中間沒有關聯,所以需要在省表中通過國家ID,找出省ID,然后在通過省ID去城市表中查找城市。]
1.通過國家ID在省表中查詢省ID
$province_record = Province::find()->where(["country_id" => $r->id])->all();
2.需要判斷一下是否查詢到了省ID,然后再根據省ID,在城市表中去查詢城市。
if(!empty($province_record)) { $city_num =0; foreach ($province_record as $record => $p) { //單個省對應的城市數量 $city_count = City::find()->where(["province_id" => $p->id])->count(); //全部加起來才是國家對應的城市數量 $city_num += $city_count; } echo $city_num; }else{ echo '-'; }
3.根據省ID查詢出來的是單個省的城市的數量,我們需要統計國家中的城市數量,所以需要做累加
$model
