/** * Lists all FieldEmployee models. * @return mixed */ public function actionIndex() { $searchModel = new FieldEmployeeSearch(); $dataProvider = $searchModel->search(Yii::$app->request->queryParams); $FieldEmployee = new FieldEmployee(); $JsonData = new JsonData(); $arrayJsonData = array_values($JsonData->getField("array")); // $insertCount = 0; $arrayFieldEmployee = $FieldEmployee->find()->orderBy(['name' => SORT_ASC])->asArray()->all(); $countDbData = count($arrayFieldEmployee); $countJsonData = count($arrayJsonData); $new = array(); $excluded = array(); if ($countJsonData > 0) { $arrayJsonData = array_unique($arrayJsonData); if ($countDbData === 0) { //Load all filed to Database $bulkInsert = array(); $now = new Expression('NOW()'); foreach ($arrayJsonData as $field) { $bulkInsert[] = ['name' => $field, 'inserted_at' => $now]; } $FieldEmployee->batchInsert($bulkInsert, ['name', 'inserted_at']); // Yii::$app->db->createCommand()->batchInsert('field_employee', ['name', 'inserted_at'], // $bulkInsert)->execute(); } elseif ($countDbData > 0) { //Check New and Deleted fields //$new = array_diff($arrayJsonData,$arrayFieldEmployee); $arrayDb = ArrayHelper::getColumn($arrayFieldEmployee, 'name'); $new = array_diff($arrayJsonData, $arrayDb); if (count($new) > 0) { $bulkInsert = array(); $now = new Expression('NOW()'); foreach ($new as $field) { $bulkInsert[] = ['name' => $field, 'inserted_at' => $now]; } $FieldEmployee->batchInsert($bulkInsert, ['name', 'inserted_at']); } $excluded = array_diff($arrayDb, $arrayJsonData); if (count($excluded) > 0) { $bulkDelete = array(); foreach ($excluded as $field) { Yii::$app->db->createCommand()->delete(FieldEmployee::tableName(), ['name' => $field])->execute(); } } // Yii::$app->db->createCommand()->batchInsert('field_employee', ['name', 'inserted_at'], // $bulkInsert)->execute(); } } else { //Can't Load JSON from URL,then , Load Field and Data from Local Database (Not in this version). } $model = new FieldEmployee(); return $this->render('index', ['model' => $model, 'searchModel' => $searchModel, 'dataProvider' => $dataProvider]); }
/** * Displays homepage. * * @return mixed */ public function actionIndex() { $json = new JsonData(); $jsonData = $json->getField('json'); return $this->render('index', ['json' => $jsonData]); }