public function actionIndexrefo() { $searchModel = new BienSearchReforme(); $dataProvideraff = $searchModel->search(Yii::$app->request->queryParams); $i = 0; $data = null; $desunite = null; $desstr = null; $models = $dataProvideraff->getModels(); foreach ($models as $row) { $searchModelaff = new AffecterSearch(); $dataProvideraff = $searchModelaff->searchCod(Yii::$app->request->queryParams, $row->codebien); $modelsaff = $dataProvideraff->getModels(); $y = 0; foreach ($modelsaff as $rowaff) { $searchModelbur = new BureauSearch(); $dataProviderbur = $searchModelbur->searchCod(Yii::$app->request->queryParams, $rowaff->codebureau); $modelsbur = $dataProviderbur->getModels(); foreach ($modelsbur as $rowbur) { $trouv = false; $codstr = $rowbur->codestructure; do { $searchModelstr = new StructureSearch(); $dataProviderstr = $searchModelstr->searchCod(Yii::$app->request->queryParams, $codstr); $modelsstr = $dataProviderstr->getModels(); foreach ($modelsstr as $rowstr) { if ($y == 0) { $desstr = $rowstr->designation; $y++; } $dataProviderstrt = $searchModelstr->searchCodtype(Yii::$app->request->queryParams, $rowstr->codestructure); $modelsstrt = $dataProviderstrt->getModels(); if ($dataProviderstrt->getTotalCount() != 0) { foreach ($modelsstrt as $rowstrt) { $desunite = $rowstrt->designation; } $trouv = true; } else { $codstr = $rowstr->codestructure_struct_chef; } } } while ($trouv == false); $data[$i] = ['codebien' => $row->codebien, 'désignation' => $row->designationbien, 'état' => $row->etatbien, 'date enregistrement' => $row->dateenr, 'structure' => $desstr, 'unité' => $desunite]; $i++; } } } $dataProviderRes = new ArrayDataProvider(['allModels' => $data, 'key' => 'codebien', 'sort' => ['attributes' => ['codebien', 'désignation', 'état', 'date enregistrement', 'unité', 'structure']]]); $dataProvider = $dataProviderRes; return $this->render('indexReforme', ['searchModel' => $searchModel, 'dataProvider' => $dataProvider]); }