Пример #1
0
 public function store()
 {
     $csvPath = Input::file('file')->getRealPath();
     $collectionName = Input::file('file')->getClientOriginalName();
     $collectionName = substr($collectionName, 0, strlen($collectionName) - 4);
     $csv = new parseCSV();
     $csv->auto($csvPath);
     $data = $csv->data;
     // If collection exists, drop it
     if (Schema::hasCollection($collectionName)) {
         Schema::drop($collectionName);
     }
     switch ($collectionName) {
         case 'Species':
             Schema::create('Species', function ($collection) {
                 //                    $collection->unique('spID');
             });
             foreach ($data as $row) {
                 $keys = array_keys($row);
                 //
                 $newSpecies = new Species();
                 //
                 foreach ($keys as $key) {
                     if (is_numeric($row[$key])) {
                         $row[$key] = (int) $row[$key];
                     }
                     $newSpecies[$key] = $row[$key];
                 }
                 $newSpecies->save();
             }
             break;
         case 'Interactions':
             Schema::create('Interactions', function ($collection) {
                 //                    $collection->unique('spID');
             });
             foreach ($data as $row) {
                 $keys = array_keys($row);
                 //
                 $newInteraction = new Interaction();
                 //
                 foreach ($keys as $key) {
                     if (is_numeric($row[$key])) {
                         $row[$key] = (int) $row[$key];
                     }
                     $newInteraction[$key] = $row[$key];
                 }
                 $newInteraction->save();
             }
             break;
         case 'TaxaGroups':
             Schema::create('TaxaGroups', function ($collection) {
                 //                    $collection->unique('spID');
             });
             foreach ($data as $row) {
                 $keys = array_keys($row);
                 //
                 $newTaxaGroup = new TaxaGroup();
                 //
                 foreach ($keys as $key) {
                     if (is_numeric($row[$key])) {
                         $row[$key] = (int) $row[$key];
                     }
                     $newTaxaGroup[$key] = $row[$key];
                 }
                 $newTaxaGroup->save();
             }
             break;
         case 'LitSources':
             Schema::create('LitSources', function ($collection) {
                 //                    $collection->unique('spID');
             });
             foreach ($data as $row) {
                 $keys = array_keys($row);
                 //
                 $newLitSource = new LitSource();
                 //
                 foreach ($keys as $key) {
                     if (is_numeric($row[$key])) {
                         $row[$key] = (int) $row[$key];
                     }
                     $newLitSource[$key] = $row[$key];
                 }
                 $newLitSource->save();
             }
             break;
         case 'Images':
             Schema::create('Images', function ($collection) {
                 //                    $collection->unique('spID');
             });
             foreach ($data as $row) {
                 $keys = array_keys($row);
                 //
                 $newImage = new Image();
                 //
                 foreach ($keys as $key) {
                     if (is_numeric($row[$key])) {
                         $row[$key] = (int) $row[$key];
                     }
                     $newImage[$key] = $row[$key];
                 }
                 $newImage->save();
             }
             break;
         case 'Synonyms':
             Schema::create('Synonyms', function ($collection) {
                 //                    $collection->unique('spID');
             });
             foreach ($data as $row) {
                 $keys = array_keys($row);
                 //
                 $newSynonym = new Synonym();
                 //
                 foreach ($keys as $key) {
                     if (is_numeric($row[$key])) {
                         $row[$key] = (int) $row[$key];
                     }
                     $newSynonym[$key] = $row[$key];
                 }
                 $newSynonym->save();
             }
             break;
         case 'BioNotes':
             Schema::create('BioNotes', function ($collection) {
                 //                    $collection->unique('spID');
             });
             foreach ($data as $row) {
                 $keys = array_keys($row);
                 //
                 $newBioNote = new BioNote();
                 //
                 foreach ($keys as $key) {
                     if (is_numeric($row[$key])) {
                         $row[$key] = (int) $row[$key];
                     }
                     $newBioNote[$key] = $row[$key];
                 }
                 $newBioNote->save();
             }
             break;
         default:
             return "Nothing is done";
     }
     //$csv->data[4]['spID'];
     return 'success!';
 }