/** * JSON => DB */ public function actionImport() { error_reporting(E_ALL & ~E_NOTICE); // Get data $data = json_decode(file_get_contents(\yii::getAlias('@frontend') . '/data/data.json')); // Deputies Deputy::deleteAll(); foreach ($data->deputies as $deputyData) { // Data $deputyData->partyName = $deputyData->party; $deputyData->facebook = $deputyData->facebook ?: null; $deputyData->phones = $deputyData->phones ? implode(',', $deputyData->phones) : null; $deputyData->dateAuthorityStart = date('Y-m-d', $deputyData->dateAuthorityStart); $deputyData->dateAuthorityStop = $deputyData->dateAuthorityStop ? date('Y-m-d', $deputyData->dateAuthorityStop) : null; $deputyData->districtId = $deputyData->district->id ?: null; $deputy = new Deputy(); $deputy->setAttributes((array) $deputyData, false); $deputy->save(); // Votes DeputyLaw::deleteAll(['deputyId' => $deputy->id]); foreach ($deputyData->laws as $deputyLawId => $deputyLawVote) { if ($deputyLawId === 'відвідуваність') { continue; } $deputyLaw = new DeputyLaw(); $deputyLaw->setAttributes(['deputyId' => $deputy->id, 'lawId' => $deputyLawId, 'vote' => $deputyLawVote], false); $deputyLaw->save(); } } // Laws Law::deleteAll(); foreach ($data->laws as $lawData) { $law = new Law(); $law->setAttributes((array) $lawData, false); $law->dateVoting = $lawData->date ? date('Y-m-d H:i:s', $lawData->date) : null; $law->save(); } // Law tags LawTag::deleteAll(); foreach ($data->lawTags as $lawTagData) { $lawTag = new LawTag(); $lawTag->setAttributes((array) $lawTagData, false); $lawTag->save(); } // Parites Party::deleteAll(); foreach ($data->parties as $partyData) { $party = new Party(); $party->setAttributes((array) $partyData, false); $party->save(); } }