[ 'class' => AccessControl::className(), 'rules' => [ [ 'actions' => ['index', 'person-area', 'person-department'], 'allow' => true, 'roles' => ['@'], ], ], ], ]; } public function actionIndex() { return $this->render('index'); } public function actionPersonArea() { $sql = " SELECT a.name, COUNT(p.id) AS cnt1 FROM person p LEFT JOIN department d ON d.id = p.department_id LEFT JOIN area a ON a.id = d.area_id GROUP BY d.area_id "; $data = Yii::$app->db->createCommand($sql)->queryAll(); $label = []; $dataset = []; foreach($data as $d){ $label[] = $d['name']; $dataset[] = $d['cnt1']; } $dataProvider = new ArrayDataProvider([ 'allModels' => $data, ]); return $this->render('person-area', [ 'data' => $data, 'dataProvider' => $dataProvider, 'label' => $label, 'dataset' => $dataset, ]); } public function actionPersonDepartment() { $sql = " SELECT d.name, COUNT(p.id) AS cnt1 FROM person p LEFT JOIN department d ON d.id = p.department_id GROUP BY d.id "; $data = Yii::$app->db->createCommand($sql)->queryAll(); $dataProvider = new ArrayDataProvider([ 'allModels' => $data, ]); return $this->render('person-department', [ 'data' => $data, 'dataProvider' => $dataProvider ]); } }